易语言资源网 - 做最全的易语言资源下载社区
精易论坛授权登录

DPI适应   [复制链接]

    2019-09-23 08:39:38
    高级教程源码
    易语言资源网
    8694 次浏览
    来源链接

首先,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,在易语言菜单栏->系统配置->存根->使用用户自定义清单





点我下载 (已有 767 次下载)

引用模块


源码文件名 模块文件名
demo.e
DPI适应模块.ec


引用支持库


源码文件名 支持库文件名 支持库标识
demo.e 系统核心支持库 5.7 d09f2340818511d396f6aaf844c7e325
DPI适应模块.e 系统核心支持库 5.7 d09f2340818511d396f6aaf844c7e325


[错误报告]   上一篇:加密解密源码     下一篇:安卓卸载预装软件v1.01...