怎样把TWIP转成Pixel
编号:QA003681
建立日期: 2000年12月18日 最后修改日期:2001年9月2日
所属类别:
王建明:
操作系统: Windows98
编程工具: VC++6.0
问题: 我在VC++6.0 中用到MSHFLEXGRID控件,我希望用户双击MSHFLEXGRID控件的某个单元格,一个Combo控件能Move 到该单元格(Combo控件已创建好)。但是现在我用MSHFLEXGRID控件的GetCellWidth()和GetCellLeft()函数得到的值是TWIP单位的,而我得到的MSHFLEXGRID控件坐标是Pixcel的,我不知怎样把TWIP转成Pixcel。请您帮助我,不胜感激!!!
水平: 中级
回答:
利用Windows API函数GetDeviceCaps,你可以得到LOGPIXELSX和LOGPIXELSY,它们表示设备(可以是屏幕,也可以是打印机)上每英寸包括的点数。而twip是1/1440英寸。
陈辉问:
操作系统: windows
编程工具: C++
问题: 如何在C++中实现以Twip为单位进行绘图?在VB中可以把ScaleMode属性设为Twip,就能够画出非常精细的图形,例如在800×600分辨率下,在窗体的X方向能够画出几千个点,请问在C++(最好是C++ BUILDER)中如何实现?
水平: 中级
答:你说的“在VB中可以把ScaleMode属性设为Twip,就能够画出非常精细的图形”是一种错觉,实际上在800×600分辨率下,在窗体的X方向最多只能画出800个点,VB实际上自动将Twips转换成像素绘出。你可以利用上面介绍的方法把Twips转换为Pixel。
此问题由李海回答。
| |
|
|
| |
|
|