描述
获取/设置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