设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2066|回复: 4
打印 上一主题 下一主题

[API] 请问如何通过VBA获取Windows系统中设定的显示比例?

[复制链接]

点击这里给我发消息

跳转到指定楼层
1#
发表于 2018-12-1 08:34:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如图中所示的比例,谢谢!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

2#
 楼主| 发表于 2018-12-1 10:22:36 | 只看该作者
起因是这样的:我有一个Access程序,当系统显示比例=100%时,Access程序可以根据屏幕分辩率正确地自动调整大小(通过GetSystemMetrics());可一旦系统显示比例≠100%,程序自动调整的结果就不正常。我分析了一下原因,发现Access程序的调整比例实际上是“GetSystemMetrics()×系统显示比例“。
在网上搜了搜,没找到解决方案,但很多地方都提到了函数SetProcessDPIAware ,大意是由DPI引起的。希望有经验的大侠能指点一下。
3#
发表于 2018-12-1 16:44:50 | 只看该作者
本帖最后由 cgsilicone 于 2018-12-1 16:51 编辑

用GetWindowRect GetDesktopWindow可以得到不同比例下桌面大小数据,应该可以反算比例。

关于自动调整大小,参看一下这个http://www.office-cn.net/thread-118480-1-1.html,这个就不受比例改变的影响。

点击这里给我发消息

4#
 楼主| 发表于 2018-12-2 18:41:47 | 只看该作者
cgsilicone 发表于 2018-12-1 16:44
用GetWindowRect GetDesktopWindow可以得到不同比例下桌面大小数据,应该可以反算比例。

关于自动调整大 ...

谢谢指点!找了一个可以获取DPI的函数,以运行时系统的DPI和设计时系统的DPI相除即可。
5#
发表于 2018-12-21 09:26:26 | 只看该作者
lzongbnew 发表于 2018-12-2 18:41
谢谢指点!找了一个可以获取DPI的函数,以运行时系统的DPI和设计时系统的DPI相除即可。

液晶显示器最佳分辨率只有一个,不建议调整DPI,调整后会显得更加不协调。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-7 07:48 , Processed in 0.083350 second(s), 29 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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