热情软件屋

 

怎样把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。

此问题由李海回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio