【洫蜘蛛】适配高DPI屏幕的解决方案之一   [复制链接]

这个模块之前早就写了的,只是最近一直上班总忘记发,现在已经凌晨四点过了,才下班回来,想起这个模块,发出来大伙瞅瞅。

我们设计好软件界面编译后,如果运行在高DPI的屏幕上,可能存在字体模糊的情况。例如我目前使用的笔记本电脑(感谢某大哥赞助)就是这么个情况,以前写好的软件打开一看,字体模模糊糊的。

如图:

从图中可以看到,软件读取屏幕的DPI也没有读取到正确的缩放比例,正确的应该是125%,而不是图中显示的100%。

要解决字体模糊和正确读取屏幕缩放比例(DPI),我选择的方案是在编译后的软件中设置存根清单来实现。

用到的存根清单设置工具,此软件我之前有开源过,需要源码请自行搜索。

方法:运行这个工具,将需要处理的文件(已编译的EXE可执行文件)拖到这个工具的窗口中,然后勾选DPI感知,最后点击更新即可。

如图:

这样操作以后,软件就能够正确读取到缩放比例,而且界面的字体也变清晰了,随之出现新的问题。

如图:

缩放比例读取正确,字体也清晰了,但是导致的问题是由于字体变大,窗口组件显示不完整了。

这时候就需要用到今天开源的这给个模块,附上这个模块的演示源码

重点来了,处理程序适应屏幕缩放的解决步骤:

1,在窗口启动事件下,调用该模块的取屏幕缩放比例()命令来获取屏幕缩放比例,判断是否需要缩放窗口组件,如果需要则继续调用适配屏幕缩放()命令,这条命令会根据指定的缩放比例改变指定窗口及其所有窗口组件的尺寸,如果有多个窗口,则每个窗口都需要这样处理。

2,编译您的程序,然后使用存根清单设置工具启用DPI感知选项。

注意:第一个操作是在源码中调用模块并写入适配的代码,第二个操作是对编译后的EXE可执行文件的存根清单进行设置。

完成这两个操作,你的软件就能很好的适配了。

如图:

 

这只是一个比较笨拙的解决方案,仅供参考!

注意:代码中使用此模块后,还需配合存根清单设置工具使用,如果没有启用DPI感知,则达不到预期的效果!

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

引用模块

源码文件名 模块文件名
演示程序.e
适配屏幕缩放.ec

引用支持库

源码文件名 支持库文件名 支持库标识
演示程序.e 系统核心支持库 5.7 d09f2340818511d396f6aaf844c7e325
适配屏幕缩放模块.e 系统核心支持库 5.7 d09f2340818511d396f6aaf844c7e325
© 版权声明
THE END
喜欢就支持一下吧!
点赞0
分享