如何解决Per Monitor Awareness 返回意外结果
结果如下:
我以 96dpi 开始我的应用程序。测试窗口如下:
您会看到顶部的手工 SwitchBox 返回文本的字体大小 (9.75 pt)
在我用正在运行的应用程序切换到 120dpi 之后
你看,因为 FontSize 没有修改,pt 保持为 9.75 pt
现在我以 120dpi 开始测试应用程序的第二个实例:
您看到字体大小现在返回 9.6pt(确实低于 9.75pt),但显示的字体比第一个显示 9.75pt 的字体大。
看起来,第二个实例上的字体创建在某种程度上受到了 Start dpi 的影响,并且具有几乎相同 pt 的字体(这当然取决于 DPI)显示不同。
这里出了什么问题?
SetThreadDpiAwarenessContext dpiPER_MONITOR_AWARE_V2
SetThreadDpiHostingBehavior DPI_HOSTING_BEHAVIOR_DEFAULT
SetDialogControlDpiChangeBehavior UserControl.hwnd,DCDC_disABLE_FONT_UPDATE Or DCDC_disABLE_RELAYOUT,DCDC_disABLE_FONT_UPDATE Or DCDC_disABLE_RELAYOUT
dpi = GetDpiForWindow(UserControl.hwnd)
mDPIFactor = dpi / 96
mhTheme = OpenThemeDataForDpi(UserControl.hwnd,StrPtr(m_sClass),dpi)
这里出了什么问题?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。