邪恶海盗 发表于 2023-9-26 18:53:04

关于DPI缩放,有没有人写个UDF用于控制控件尺寸?

RT,写个UDF直接调用,根据DPI自动调整控件尺寸的方式应该体验不错

比如原来是GuiCtrlCreateLabel(10,20,100,30),使用UDF后写成GuiCtrlCreateLabel(_X(10),_Y(20),_Width(100),_Height(30))以保证在各种DPI下显示效果一致,这样有没有可能实现???

afan 发表于 2023-9-26 19:16:20

创建时坐标直接带上 * DPI缩放系数就行了,要什么udf。

gyp2000 发表于 2023-9-26 19:15:27

当然可以实现,但是不够智能。应该写成函数,探测所有控件,然后自动调整,手动改写控件太费劲了。懂我意思吧

gyp2000 发表于 2023-9-26 19:22:39

目前还有一个简单的办法适应缩放。AU3的窗口控件设置成随窗口缩放模式。然后根据DPI缩放比例调整窗口大小。缺点就是个别控件不支持这种特性,遇到这种控件还需要单独调整。

绿色风 发表于 2023-9-27 10:37:52

管他个缩放,用加载个html做界面。
:face (5):

邪恶海盗 发表于 2023-9-27 18:47:08

afan 发表于 2023-9-26 19:16
创建时坐标直接带上 * DPI缩放系数就行了,要什么udf。

不要光打嘴炮,举个栗子啊...

邪恶海盗 发表于 2023-9-27 18:47:33

绿色风 发表于 2023-9-27 10:37
管他个缩放,用加载个html做界面。

不要光打嘴炮,举个栗子啊...

haijie1223 发表于 2024-3-22 08:14:36

刚看到这个帖子,我说想一下自己的看法。不管是*dpi系数,还是/dpi系数,还是html,只要有dpi缩放,界面就会模糊,不清楚。这个dpi缩放系数也比较容易计算,就算按照楼主的这个思路,创建时放大或者缩小尺寸都无济于事,还是会照样模糊。所以建议还是直接禁用dpi缩放:https://www.autoitx.com/thread-72066-1-1.html。

afan 发表于 2024-3-22 10:55:46

haijie1223 发表于 2024-3-22 08:14
刚看到这个帖子,我说想一下自己的看法。不管是*dpi系数,还是/dpi系数,还是html,只要有dpi缩放,界面就 ...

一般 * dpi 系数前肯定是要先设置DPI感知方式的,比如 SetProcessDpiAwareness 或 SetProcessDpiAwarenessContext 设置 或简单点直接禁用,然后就可在创建时对需要的控件 * dpi 调整了。
光禁用对于小的缩放比例还没事,可能还看得清,但是对于较大的比例(比如超高分笔记本),如果不处理就根本看不清了,那就还不如不禁用,由系统模糊缩放得了,至少看得清~

haijie1223 发表于 2024-3-22 15:00:34

afan 发表于 2024-3-22 10:55
一般 * dpi 系数前肯定是要先设置DPI感知方式的,比如 SetProcessDpiAwareness 或 SetProcessDpiAwarenes ...

哦哦,原来如此,学习到了。感谢a版指点。
页: [1]
查看完整版本: 关于DPI缩放,有没有人写个UDF用于控制控件尺寸?