尝试使用我的Delphi 2010应用程序更多的用户freidly在
Windows 7中的高DPI模式我一直在尝试几种方法来检索PixelsPerInch和96比较.唉,无论我试过我总是得到96.我的问题是:
>获取定制DPI模式的最佳做法是什么?
>事实上,我得到了一个常数96无论我什么意思是意味着我失去了一些东西?
这是我试过的
dpiX := Form1.PixelsPerInch
和
dpiX := Screen.PixelsPerInch
最后:
D2DFactoryOptions.DebugLevel := D2D1_DEBUG_LEVEL_NONE; pD2DFactoryOptions := @D2DFactoryOptions; if D2D1CreateFactory( D2D1_FACTORY_TYPE_SINGLE_THREADED,IID_ID2D1Factory,PD2DFactoryOptions,D2DFactory ) <> S_OK then exit; D2DFactory.GetDesktopDpi(dpiX,dpiY)
小心猜测?这是正确的dpiX是一个常数96在100%,125%和150%
请指教.
解决方法
我认为您需要通过将您的应用程序包含在您的应用程序清单中来将您的应用程序标记为高DPI感知:
<asmv3:application xmlns:asmv3="urn:schemas-microsoft-com:asm.v3"> <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings"> <dpiAware>true</dpiAware> </asmv3:windowsSettings> </asmv3:application>
宣布DPI意识的细节为here.
看来你现在正在回归所谓的DPI Virtualization.