在德尔福获得定制DPI百分比

前端之家收集整理的这篇文章主要介绍了在德尔福获得定制DPI百分比前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
尝试使用我的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.

原文链接:https://www.f2er.com/delphi/102442.html

猜你在找的Delphi相关文章