脚本开发,脚本学习,辅助软件,各种工具软件

访问密码统一为:3158

查看: 2065|回复: 0

【洫蜘蛛】适配高DPI屏幕的解决方案之一

[复制链接]

92

主题

92

帖子

632

积分

专属

Rank: 1

积分
632
发表于 2020-5-27 16:21:34 | 显示全部楼层 |阅读模式

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

如图:

OFB(P1NE5OKP)))F1JSBV9A.png

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

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

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

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

如图:

1IKKPIP2QKLYN6ASVBY6BM3.png

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

如图:

`FBDS@]LR6WVV(8)}0G8P[1.png

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

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

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

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

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

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

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

如图:

%XD3~I2115P{NLL(]9}`4AX.png

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


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


3Q4T网,编程学习交流基地。
回复

使用道具 举报

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

本版积分规则

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