为编程爱好者分享易语言教程源码的资源网
好用的代理IP,游戏必备 ____广告位招租____ 服务器99/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器
好用的代理IP,游戏必备 ____广告位招租____ 服务器低至38/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器

网站首页 > 易语言相关 > 系统工具源码 正文

强行兼容高DPI易语言源码

三叶资源网 2017-11-19 18:04:38 系统工具源码 2823 ℃ 2 评论

资源介绍:

兼容高DPI是个困难的活儿,除非你是用的WPF写界面,其他编程语言都很麻烦(特别是易语言,原生窗体基本别想兼容了。。)

如果自己的程序不针对高DPI做修改,轻则出现界面显示模糊,重则界面显示错乱、文字超出边界。为了让自己的程序能凑合用,我才搞了这个“强行兼容”高DPI。

什么叫“强行兼容”呢?如果是正常兼容,那界面尺寸应该有所放大,放大后依然能正常显示。我这个,只是告诉系统:“我自己能处理高DPI,你别插手捣乱”,但是实际上啥也没做。实际效果就是,界面尺寸跟96DPI(100%缩放)时一样,几乎所有界面都能正常显示(已知简单超文本框有问题)。弊端就是界面显示略小,如果用户屏幕分辨率太高(如2K、4K分辨率),则可能会看不清界面。

毕竟强行兼容嘛,先保证能用,至于用得舒服不舒服,那以后再慢慢说~(等我有高DPI显示屏再说。。。)

我这个代码就是做了两件事:

hook GetStockObject,如果参数为DEFAULT_GUI_FONT,就返回固定的9号宋体(避免xp风格的字体缩放导致文字显示溢出)

调用SetProcessDPIAware告诉系统我自己能处理高DPI(禁用DPI虚拟化)

由于SetProcessDPIAware需要在所有界面显示前调用,所以我直接做到了模块的“_启动子程序”里,只要引入模块就会自动调用。

是的,使用方法就是如此简单,只要引入模块即可,不需要调用任何模块函数(模块里也没有能调用的函数)。

效果如下:

强行兼容高DPI.jpg

引用的strawhat模块出自“草帽变速齿轮”,很早之前在易语言论坛下载的,抱歉时间太久找不到原帖地址了。也可以用其他任意hook模块代替。

资源作者:

淡到仿若无物

资源下载:

文件下载

来源:三叶资源网,欢迎分享,公众号:iisanye,(三叶资源网⑤群:21414575

已有2位网友发表了看法:

欢迎 发表评论:

百度站内搜索
关注微信公众号
三叶资源网⑤群:三叶资源网⑤群

网站分类
随机tag
系统服务优化向导OEM信息WMF图片转BMP群排名编辑框输入提示百度云计算图片识别进程抓包接口自动发货gitSqliteE2EE支持库创建易语言IDE界面sign算法组合框拼接龙珠直播采集内存操作TX优图OCR鉴权SendMessage
最新评论