精易论坛
标题:
DPI适应
[打印本页]
作者:
LLJ
时间:
2019-9-9 01:47
标题:
DPI适应
本帖最后由 LLJ 于 2019-9-9 23:34 编辑
首先,DPI(Dots Per Inch)每英寸的像素点数。
现在的显示器像素点越来越精细,也越来越清晰,但是为什么有些程序字体模糊?下图是在DPI为120%,用易语言编译后运行的效果:
1.png
(50.77 KB, 下载次数: 0)
下载附件
2019-9-9 00:28 上传
因为从Windows Vista开始引入了DPI Virtualization(DPI虚拟化)它会把不支持高DPI的窗口像图片一样缩放,所以看起来模糊。
可以调用 SetProcessDPIAware 告诉DPI虚拟化不要动我
2.png
(6.85 KB, 下载次数: 0)
下载附件
2019-9-9 00:28 上传
但这样还没完全搞定,因为这个窗口是在DPI为120%设计的,到不同DPI运行界面会错乱。
需要自动调整控件大小,字体大小就不用管了,默认字体会随着DPI变化。
易语言本身不支持DPI适应,为此我开发了一个模块来支持DPI适应。
1.0版
源码.zip
(6.31 KB, 下载次数: 76)
2019-9-9 00:28 上传
点击文件名下载附件
下载积分: 精币 -2 枚
1.1版
更改 如果是弹出式窗口则计算并缩放客户区(排除边框、标题栏、菜单栏)。修复 先放大了组合框,再放大组合框内的编辑框导致大小出现问题,已改成先缩放子窗口,再缩放父窗口,这样父窗口会自动调整子窗口。
源码.zip
(6.5 KB, 下载次数: 503)
2019-9-9 19:23 上传
点击文件名下载附件
下载积分: 精币 -2 枚
另外:
易语言本身也不支持DPI,会被DPI虚拟化搞得很模糊,请右键e.exe 属性->兼容性->更改高DPI设置->勾选 代替高DPI缩放行为->应用程序->确定。
不推荐调用SetProcessDPIAware,因为XP没有这个函数,应该用清单来支持DPI,在易语言菜单栏->系统配置->存根->使用用户自定义清单
内容:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<!--如果不需要通用控件库6.0,删除以下代码-->
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="x86" publicKeyToken="6595b64144c*Fdf" language="*"/>
</dependentAssembly>
</dependency>
<!--如果不需要请求管理员权限,删除以下代码-->
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="highestAvailable" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
<!--如果不需要支持DPI感知,删除以下代码-->
<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings>
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
</windowsSettings>
</application>
</assembly>
复制代码
上面的代码"
6595b64144c*Fdf
"把*改成c被论坛自动替换了
作者:
弱鸡第一步
时间:
2019-9-9 01:58
请教一下大佬,像有的游戏改编窗口用户区大小之后,画面变得很模糊,那有办法让他不模糊吗
作者:
醉酒成梦°
时间:
2019-9-9 04:17
GIF再快点 我眼睛还没花
作者:
maozaiba
时间:
2019-9-9 04:29
GKD GKD
作者:
kyo9766
时间:
2019-9-9 08:25
看着上面的图片,已经晕了,先让我晕一会
作者:
xiaoniu1230
时间:
2019-9-9 08:36
感谢分享,支持开源
作者:
sunmoonstar
时间:
2019-9-9 08:47
很需要,下来学习。。
作者:
峰生水起之林
时间:
2019-9-9 09:09
感谢分享学习
作者:
shinid8210
时间:
2019-9-9 09:21
谢谢分享,下载学习
作者:
wjswzj0
时间:
2019-9-9 09:52
感谢分享,很给力!~
作者:
指尖流淌
时间:
2019-9-9 10:08
好东西,收藏了先!~~~~~~~~~~~
作者:
woshipqj
时间:
2019-9-9 10:51
好东西,收藏了先!~~~~~~~~~~~
作者:
李泽勇2
时间:
2019-9-9 12:47
楼主威武,支持。
作者:
sunmoonstar
时间:
2019-9-9 16:24
组合框放大出现问题,右边下拉按钮没了,缩小没问题。在两台WIN10系统电脑试过都有同样的问题
作者:
fengyishen
时间:
2019-9-9 18:34
支持开源~!感谢分享
作者:
v5b9pp
时间:
2019-9-9 18:43
闪的我眼睛疼,感觉挺厉害的
作者:
默念、
时间:
2019-9-10 10:00
哈哈 闪的我脑袋爆炸
作者:
接单员
时间:
2019-9-11 21:27
支持一下
作者:
夜的静night
时间:
2019-9-11 21:32
666666
作者:
gaoqing
时间:
2019-9-12 18:01
谢谢分享啊
作者:
FlyMX
时间:
2019-9-14 09:41
感谢楼主分享!!!
作者:
zwh8698
时间:
2019-9-15 10:13
摩拜大神牛XX
作者:
sunmoonstar
时间:
2019-9-15 15:59
修复了,完美
作者:
TBit
时间:
2019-11-5 17:25
眼快晃瞎了
作者:
56766876
时间:
2019-11-5 17:32
支持开源~!感谢分享
作者:
gaoqing
时间:
2019-11-5 18:35
这个实用谢谢
作者:
kyo9766
时间:
2019-11-6 09:14
动图 看蒙圈了
,感谢分享
作者:
q951681306
时间:
2019-11-6 13:08
谢谢分享支持开源
作者:
xiangyabing
时间:
2019-11-7 15:17
谢谢分享啊
作者:
83636368
时间:
2020-1-1 19:22
谢谢分享支持开源
作者:
gay酱
时间:
2020-3-23 21:30
支持支持支持支持
作者:
最恨VC
时间:
2020-10-12 14:29
这个清单导入后编译的exe打不开了,事件日志里
“D:\e\UI.exe”的激活上下文生成失败。在指令清单或策略文件“D:\e\UI.exe”的第 2 行出现错误。 无效的 Xml 语法。
作者:
最恨VC
时间:
2020-10-12 14:39
字体要是能解决就好了,因为并不是所有字体都一样大,不能总用默认字体,很多组件都是固定了字体大小
作者:
hmyroot
时间:
2020-12-25 17:13
支持
作者:
怡君大哥
时间:
2021-1-7 01:19
支持开源~!感谢分享
作者:
夏至i
时间:
2021-1-19 23:21
感谢分享,非常需要
作者:
natianlianji09
时间:
2021-3-21 21:56
如果是弹出式窗口则计算并缩放客户区(排除边框、标题栏、菜单栏)。修复 先放大了组合框,再放大组合框内的编辑框导致大小出现问题,已改成先缩放子窗口,再缩放父窗口,这样父窗口会自动调整子窗口。
作者:
鎏绊
时间:
2021-6-23 10:03
相当感谢,正需要
作者:
yasyr66
时间:
2022-3-7 22:38
感谢分享,
作者:
扶南
时间:
2022-12-12 19:21
组合框下拉不显示了
作者:
ghostw
时间:
2022-12-15 17:26
组合框下拉不显示了
作者:
美味萝卜
时间:
2023-1-28 22:51
支持开源~!感谢分享
作者:
ferrisy
时间:
2023-7-29 19:05
此处应该有鼓励
作者:
红色恋曲
时间:
2023-11-1 19:48
作者:
红色恋曲
时间:
2023-11-1 19:49
谢谢分享~
作者:
lm88818
时间:
2024-11-6 09:58
支持开源~!感谢分享
作者:
欢欢喜喜
时间:
2025-2-26 12:24
远吗是老版本,直接放进去会识别吗?
作者:
mengchuan
时间:
2025-4-11 17:52
谢谢分享~
作者:
在看风云
时间:
6 天前
6666666666666666666
欢迎光临 精易论坛 (https://125.confly.eu.org/)
Powered by Discuz! X3.4