| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2491 人关注过本帖
标题:sysmetric()读取2K显示器,结果异常
只看楼主 加入收藏
sharamjam
Rank: 2
来 自:UK
等 级:论坛游民
帖 子:81
专家分:59
注 册:2014-9-19
结帖率:68.75%
收藏
已结贴  问题点数:5 回复次数:6 
sysmetric()读取2K显示器,结果异常
用Sysmetric()获取的2K显示器的分辨率
竟然是1707×960
1920×1080分辨率下调试的界面
都只能看到一半界面

看来直接调用sysmetric()获取屏幕属性是不行了
WIN32 API函数能获取准确的数据吗

两个问题:
1.设置的_screen.height=任务栏.TOP - sysmetric(9) - sysmetric(9)
  但是在2K显示器上主窗口远远高于屏幕

2.使用VFP9 sample.vcx里的resizable控件能解决这个问题吗?
  这个控件解决不了的话,还有其他什么思路?



[此贴子已经被作者于2018-6-27 11:00编辑过]

搜索更多相关主题的帖子: 读取 显示器 结果 异常 获取 
2018-06-27 10:01
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10538
专家分:42927
注 册:2014-5-20
收藏
得分:5 
这样看看:
**
** 获取屏幕分辩率、DIP
** 一般情况下,DPI为96,放大倍数100%时,“屏幕分辨率”与“桌面分辨率”相同。
** 如果放大倍数不是100%时,“屏幕分辨率”与“桌面分辨率”不同。
**
DECLARE LONG GetDC IN User32 LONG
DECLARE LONG ReleaseDC IN User32 LONG,LONG
DECLARE LONG GetDeviceCaps IN Gdi32 LONG,LONG
#define HORZRES    8
#define VERTRES    10
#define DESKTOPVERTRES    117
#define DESKTOPHORZRES    118
#define LOGPIXELSX    88  
#define LOGPIXELSY    90  
hDC = GetDC(0)
?"屏幕分辨率", GetDeviceCaps(hDC,HORZRES), GetDeviceCaps(hDC, VERTRES)
?"桌面分辨率",GetDeviceCaps(hDC,DESKTOPHORZRES), GetDeviceCaps(hDC,DESKTOPVERTRES)
?"DPI", GetDeviceCaps(hDC,LOGPIXELSX), GetDeviceCaps(hDC, LOGPIXELSY)
ReleaseDC(0, hDC)

2018-06-27 11:16
sharamjam
Rank: 2
来 自:UK
等 级:论坛游民
帖 子:81
专家分:59
注 册:2014-9-19
收藏
得分:0 
回复 2楼 吹水佬
好的 我先试试

我是VFP菜鸟……
但是用VFP实现一个个小应用,还是很有成就感的
2018-06-27 12:15
sharamjam
Rank: 2
来 自:UK
等 级:论坛游民
帖 子:81
专家分:59
注 册:2014-9-19
收藏
得分:0 
回复 2楼 吹水佬
你好
我把你的代码运行了一下
出现截图的数据
屏幕分辨率sysmetric返回的一样1707×960
桌面分辨率2560×1440,放大1.5倍
请问我要怎么改造
是不是把OS的放大镜调成100%就可以了?

对方WIN7,我在WIN10下开发的
图片附件: 游客没有浏览图片的权限,请 登录注册


[此贴子已经被作者于2018-6-27 14:42编辑过]


我是VFP菜鸟……
但是用VFP实现一个个小应用,还是很有成就感的
2018-06-27 14:08
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10538
专家分:42927
注 册:2014-5-20
收藏
得分:0 
缩放最好调成100%,否则VFP有可能出现异常,屏幕座标取点不准确。
2018-06-27 14:53
sharamjam
Rank: 2
来 自:UK
等 级:论坛游民
帖 子:81
专家分:59
注 册:2014-9-19
收藏
得分:0 
回复 5楼 吹水佬
我写套1707x960尺寸的样式
在放大150%的情况下
是不是正好了?
会有什么硬伤吗?

还有在放大1.5倍的情况下
主窗口的右上角的最小化、最大化、关闭按钮
还是正常在屏幕右上角
为什么没被放大到更右边的地方?

[此贴子已经被作者于2018-6-27 15:22编辑过]


我是VFP菜鸟……
但是用VFP实现一个个小应用,还是很有成就感的
2018-06-27 15:19
gs2536785678
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:45
帖 子:601
专家分:1770
注 册:2017-7-16
收藏
得分:0 
看过,现在的屏幕大小不一,小的如笔记本,大的如台式机。
楼主朋友还在为不同的屏幕大小而烦恼。
我是这样处理的:
所有的VF表单都设置成宽度不超过1000,高度不超过700
用_SCREEN做主窗口
则任何电脑,任何屏幕上,都可以用了。
2018-06-29 16:15
快速回复:sysmetric()读取2K显示器,结果异常
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016088 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved