精易论坛

标题: DPI适应 [打印本页]

作者: LLJ    时间: 2019-9-9 01:47
标题: DPI适应
本帖最后由 LLJ 于 2019-9-9 23:34 编辑

首先,DPI(Dots Per Inch)每英寸的像素点数。
现在的显示器像素点越来越精细,也越来越清晰,但是为什么有些程序字体模糊?下图是在DPI为120%,用易语言编译后运行的效果:


因为从Windows Vista开始引入了DPI Virtualization(DPI虚拟化)它会把不支持高DPI的窗口像图片一样缩放,所以看起来模糊。
可以调用 SetProcessDPIAware 告诉DPI虚拟化不要动我



但这样还没完全搞定,因为这个窗口是在DPI为120%设计的,到不同DPI运行界面会错乱。
需要自动调整控件大小,字体大小就不用管了,默认字体会随着DPI变化。
易语言本身不支持DPI适应,为此我开发了一个模块来支持DPI适应。
1.0版
源码.zip (6.31 KB, 下载次数: 76)

1.1版
更改 如果是弹出式窗口则计算并缩放客户区(排除边框、标题栏、菜单栏)。修复 先放大了组合框,再放大组合框内的编辑框导致大小出现问题,已改成先缩放子窗口,再缩放父窗口,这样父窗口会自动调整子窗口。 源码.zip (6.5 KB, 下载次数: 503)


另外:
易语言本身也不支持DPI,会被DPI虚拟化搞得很模糊,请右键e.exe  属性->兼容性->更改高DPI设置->勾选 代替高DPI缩放行为->应用程序->确定。
不推荐调用SetProcessDPIAware,因为XP没有这个函数,应该用清单来支持DPI,在易语言菜单栏->系统配置->存根->使用用户自定义清单
内容:
  1. <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  2. <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">

  3. <!--如果不需要通用控件库6.0,删除以下代码-->
  4. <dependency>
  5.         <dependentAssembly>
  6.                 <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="x86" publicKeyToken="6595b64144c*Fdf" language="*"/>
  7.         </dependentAssembly>
  8. </dependency>

  9. <!--如果不需要请求管理员权限,删除以下代码-->
  10. <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
  11.         <security>
  12.                 <requestedPrivileges>
  13.                         <requestedExecutionLevel level="highestAvailable" uiAccess="false"/>
  14.                 </requestedPrivileges>
  15.         </security>
  16. </trustInfo>

  17. <!--如果不需要支持DPI感知,删除以下代码-->
  18. <application xmlns="urn:schemas-microsoft-com:asm.v3">
  19.         <windowsSettings>
  20.                 <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
  21.         </windowsSettings>
  22. </application>

  23. </assembly>
复制代码
上面的代码"6595b64144c*Fdf"把*改成c被论坛自动替换了


作者: 弱鸡第一步    时间: 2019-9-9 01:58
请教一下大佬,像有的游戏改编窗口用户区大小之后,画面变得很模糊,那有办法让他不模糊吗
作者: 醉酒成梦°    时间: 2019-9-9 04:17
GIF再快点 我眼睛还没花
作者: maozaiba    时间: 2019-9-9 04:29
GKD GKD     
作者: kyo9766    时间: 2019-9-9 08:25
看着上面的图片,已经晕了,先让我晕一会
作者: xiaoniu1230    时间: 2019-9-9 08:36
感谢分享,支持开源
作者: sunmoonstar    时间: 2019-9-9 08:47
很需要,下来学习。。
作者: 峰生水起之林    时间: 2019-9-9 09:09
感谢分享学习
作者: shinid8210    时间: 2019-9-9 09:21
谢谢分享,下载学习
作者: wjswzj0    时间: 2019-9-9 09:52
感谢分享,很给力!~
作者: 指尖流淌    时间: 2019-9-9 10:08
好东西,收藏了先!~~~~~~~~~~~
作者: woshipqj    时间: 2019-9-9 10:51
好东西,收藏了先!~~~~~~~~~~~
作者: 李泽勇2    时间: 2019-9-9 12:47
楼主威武,支持。
作者: sunmoonstar    时间: 2019-9-9 16:24
组合框放大出现问题,右边下拉按钮没了,缩小没问题。在两台WIN10系统电脑试过都有同样的问题
作者: fengyishen    时间: 2019-9-9 18:34
        支持开源~!感谢分享
作者: v5b9pp    时间: 2019-9-9 18:43
闪的我眼睛疼,感觉挺厉害的
作者: 默念、    时间: 2019-9-10 10:00
哈哈  闪的我脑袋爆炸
作者: 接单员    时间: 2019-9-11 21:27
支持一下      
作者: 夜的静night    时间: 2019-9-11 21:32
666666         
作者: gaoqing    时间: 2019-9-12 18:01
谢谢分享啊
作者: FlyMX    时间: 2019-9-14 09:41
感谢楼主分享!!!
作者: zwh8698    时间: 2019-9-15 10:13
摩拜大神牛XX
作者: sunmoonstar    时间: 2019-9-15 15:59
修复了,完美
作者: TBit    时间: 2019-11-5 17:25
眼快晃瞎了
作者: 56766876    时间: 2019-11-5 17:32
        支持开源~!感谢分享
作者: gaoqing    时间: 2019-11-5 18:35
这个实用谢谢
作者: kyo9766    时间: 2019-11-6 09:14
动图 看蒙圈了,感谢分享
作者: q951681306    时间: 2019-11-6 13:08
谢谢分享支持开源
作者: xiangyabing    时间: 2019-11-7 15:17

谢谢分享啊

作者: 83636368    时间: 2020-1-1 19:22

谢谢分享支持开源
作者: gay酱    时间: 2020-3-23 21:30
支持支持支持支持
作者: 最恨VC    时间: 2020-10-12 14:29
这个清单导入后编译的exe打不开了,事件日志里
“D:\e\UI.exe”的激活上下文生成失败。在指令清单或策略文件“D:\e\UI.exe”的第 2 行出现错误。 无效的 Xml 语法。
作者: 最恨VC    时间: 2020-10-12 14:39
字体要是能解决就好了,因为并不是所有字体都一样大,不能总用默认字体,很多组件都是固定了字体大小
作者: hmyroot    时间: 2020-12-25 17:13
支持
作者: 怡君大哥    时间: 2021-1-7 01:19
        支持开源~!感谢分享
作者: 夏至i    时间: 2021-1-19 23:21
感谢分享,非常需要
作者: natianlianji09    时间: 2021-3-21 21:56
如果是弹出式窗口则计算并缩放客户区(排除边框、标题栏、菜单栏)。修复 先放大了组合框,再放大组合框内的编辑框导致大小出现问题,已改成先缩放子窗口,再缩放父窗口,这样父窗口会自动调整子窗口。
作者: 鎏绊    时间: 2021-6-23 10:03
相当感谢,正需要
作者: yasyr66    时间: 2022-3-7 22:38
感谢分享,
作者: 扶南    时间: 2022-12-12 19:21
组合框下拉不显示了
作者: ghostw    时间: 2022-12-15 17:26
组合框下拉不显示了
作者: 美味萝卜    时间: 2023-1-28 22:51
支持开源~!感谢分享
作者: ferrisy    时间: 2023-7-29 19:05
此处应该有鼓励
作者: 红色恋曲    时间: 2023-11-1 19:48

作者: 红色恋曲    时间: 2023-11-1 19:49
谢谢分享~
作者: lm88818    时间: 2024-11-6 09:58
支持开源~!感谢分享
作者: 欢欢喜喜    时间: 2025-2-26 12:24
远吗是老版本,直接放进去会识别吗?

作者: mengchuan    时间: 2025-4-11 17:52
谢谢分享~
作者: 在看风云    时间: 6 天前
6666666666666666666




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4