脚本开发,脚本学习,辅助软件
【腾讯云】新用户专属大礼包低至1折【阿里云】云产品通用代金券2000元【阿里云】云小站优惠返现【阿里云】企业级1折特惠【阿里云】3年低至3折
查看: 9|回复: 0

DPI适应

[复制链接]

19

主题

19

帖子

113

积分

襁褓

Rank: 1

积分
113
发表于 2020-5-12 14:37:14 | 显示全部楼层 |阅读模式

首先,DPI(Dots Per Inch)每英寸的像素点数。

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

5U(SR)GC3SM(FL]AT(5OACQ.png

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

可以调用 SetProcessDPIAware 告诉DPI虚拟化不要动我

R(5}9`$NL(]O9XB~SL}(6.png

但这样还没完全搞定,因为这个窗口是在DPI为120%设计的,到不同DPI运行界面会错乱。

需要自动调整控件大小,字体大小就不用管了,默认字体会随着DPI变化。

易语言本身不支持DPI适应,为此我开发了一个模块来支持DPI适应。


更改:如果是弹出式窗口则计算并缩放客户区(排除边框、标题栏、菜单栏)。

修复:先放大了组合框,再放大组合框内的编辑框导致大小出现问题,已改成先缩放子窗口,再缩放父窗口,这样父窗口会自动调整子窗口。


另外:

易语言本身也不支持DPI,会被DPI虚拟化搞得很模糊,请右键e.exe  属性->兼容性->更改高DPI设置->勾选 代替高DPI缩放行为->应用程序->确定。

不推荐调用SetProcessDPIAware,因为XP没有这个函数,应该用清单来支持DPI,在易语言菜单栏->系统配置->存根->使用用户自定义清单


下载链接:https://t00y.com/file/20110282-442910837







上一篇:安卓卸载预装软件v1.01
下一篇:加密解密源码
3Q4T网,编程学习交流基地。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表