首先,DPI(Dots Per Inch)每英寸的像素点数。
现在的显示器像素点越来越精细,也越来越清晰,但是为什么有些程序字体模糊?下图是在DPI为120%,用
易语言
编译后运行的效果:
因为从Windows Vista开始引入了DPI Virtualization(DPI虚拟化)它会把不支持高DPI的窗口像图片一样缩放,所以看起来模糊。
可以调用 SetProcessDPIAware 告诉DPI虚拟化不要动我
但这样还没完全搞定,因为这个窗口是在DPI为120%设计的,到不同DPI运行界面会错乱。
需要自动调整控件大小,字体大小就不用管了,默认字体会随着DPI变化。
易语言本身不支持DPI适应,为此我开发了一个模块来支持DPI适应。
更改:如果是弹出式窗口则计算并缩放客户区(排除边框、标题栏、菜单栏)。
修复:先放大了组合框,再放大组合框内的编辑框导致大小出现问题,已改成先缩放子窗口,再缩放父窗口,这样父窗口会自动调整子窗口。
另外:
易语言本身也不支持DPI,会被DPI虚拟化搞得很模糊,请右键e.exe属性->兼容性->更改高DPI设置->勾选 代替高DPI缩放行为->应用程序->确定。
不推荐调用SetProcessDPIAware,因为XP没有这个函数,应该用清单来支持DPI,在易语言菜单栏->系统配置->存根->使用用户自定义清单
2022-08-01 09:36:01
7KB
高级教程源码
1