导航:  CWindow Class > Methods and Properties >

DPI

上一页返回章节概述下一页

描述

 

获取/设置DPI(每英寸点数)是由应用程序使用.主窗口、控件和字体将按此值缩放.不要改变DPI价值一旦主窗口被创建.

默认情况下,CWindow获得了DPI设置所使用的计算机和计算缩放比例,但是你可以使用这个属性来改变这种行为.例如,通过DPI 96 disbles缩放;任何其他值,改变缩放比例.

 

FreeBASIC 语法

 

PROPERTY DPI () AS SINGLE

PROPERTY DPI (BYVAL nDPI AS SINGLE)

 

参数

 

dpi

[in]点每英寸数.通1使用价值的GetDeviceCaps API函数返回.

 

备注

 

使应用程序DPI知道Windows Vista / Windows 7需要调用的函数SetProcessDPIAware API或通过应用程序清单.

Note SetProcessDPIAware是一个可能的竞争条件如果DLL缓存的DPI设置初始化时.为此,建议识别DPI设置通过应用程序(.exe)表现而不是通过调用SetProcessDPIAware.

DLL应该接受DPI的主机程序,而不是打电话SetProcessDPIAware自己设置.要设置正确,dpiAware应指定的应用程序的一部分(.exe)清单.(在嵌入式DLL体现dpiAware定义没有影响.)以下标记显示了如何设置dpiAware作为应用程序的一部分(.exe)清单.

 

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" >

...

<asmv3:application>

  <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">

    <dpiAware>true</dpiAware>

  </asmv3:windowsSettings>

</asmv3:application>

...

</assembly>

 

Note:cwindow.inc提供包装功能,AfxSetProcessDPIAWare,动态加载'user32. dll中的函数的地址API SetProcessDPIAware.这允许编写可以在任何Windows版本中运行的应用程序.如果在操作系统的功能SetProcessDPIAware不可用(Windows XP及以下),电话不会有影响但应用程序不会失败.你仍然可以使用这些版本的Windows使用DPI属性传递希望值的调整.

 

用法示例

 

DIM dpi AS LONG = pWindow.DPI

pWindow.DPI = 96

 

引用文件

 

CWindow.inc