窗口大小自适应分辨率

wen_eric 2011-12-30 12:49:01
我可能描述的不是太好,大体是这样的:使用vc创建一个基于对话框的应用程序,在窗口中拖上一个按钮控件。运行程序。改变屏幕的分辨率为800*600后,发现按钮控件大小发生了变化。请问如何实现无论怎么调整分辨率,按钮控件的大小都不会改变?
...全文
582 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
Saleayas 2011-12-31
  • 打赏
  • 举报
回复
DPtoLP
and
LPtoDP
wen_eric 2011-12-31
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 liangxd09 的回复:]
分辨率变化的时候,比如你固定10cm*10cm,计算出10cm为多少分辨率。然后再设置
[/Quote]你能说的再具体点吗,我不是很明白你说的意思
wen_eric 2011-12-31
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 meryal 的回复:]
用可变映射,先获取屏幕大小,然后分成若干逻辑单位
[/Quote]我分别在800*600和1440*900的分辨率下使用GetWindowRect()获取按钮控件的大小都是(0,0,50,70),就是不知道为什么显示出来的大小不一样,
wen_eric 2011-12-31
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 meryal 的回复:]
用可变映射,先获取屏幕大小,然后分成若干逻辑单位
[/Quote]我分别在800*600和1440*900的分辨率下使用GetWindowRect()获取按钮控件的大小都是(0,0,50,70),就是不知道为什么显示出来的大小不一样,
wen_eric 2011-12-31
  • 打赏
  • 举报
回复
分已送上,感谢各位,
meryal 2011-12-30
  • 打赏
  • 举报
回复
用可变映射,先获取屏幕大小,然后分成若干逻辑单位
liangxd09 2011-12-30
  • 打赏
  • 举报
回复
分辨率变化的时候,比如你固定10cm*10cm,计算出10cm为多少分辨率。然后再设置
Luisfan 2011-12-30
  • 打赏
  • 举报
回复
bcb 好像很简单的就可以实现,哈哈
Saleayas 2011-12-30
  • 打赏
  • 举报
回复
因为分辨率变小之后,点距变大了。
所以看起来就大了。
wen_eric 2011-12-30
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 saleayas 的回复:]
处理 WM_DISPLAYCHANGE 消息。
[/Quote]多谢你提示,我先试试。
wen_eric 2011-12-30
  • 打赏
  • 举报
回复
现在的情况是在1440*900下的按钮,一旦切到800*600后,按钮就会变大,我希望它不变。
Saleayas 2011-12-30
  • 打赏
  • 举报
回复
处理 WM_DISPLAYCHANGE 消息。
wen_eric 2011-12-30
  • 打赏
  • 举报
回复
是的,
Saleayas 2011-12-30
  • 打赏
  • 举报
回复
你要的是拿个尺子去屏幕量的那个尺寸不变吗?
wen_eric 2011-12-30
  • 打赏
  • 举报
回复
能否使窗口的大小固定下来呢?
wen_eric 2011-12-30
  • 打赏
  • 举报
回复
我这里的现象就是这样子的,所以我想在固定的逻辑单位(100,100)不变的前提下,即使分辨率不同,看到的大小也不改变,[Quote=引用 5 楼 saleayas 的回复:]
比如 在 MFC 下,建立一个按钮 宽度 为 100 。
那么不管在哪个分辨率下,宽度都是100。
但是,在同一显示器的不同分辨率下,看到的大小是不一致的。
[/Quote]
Saleayas 2011-12-30
  • 打赏
  • 举报
回复
比如 在 MFC 下,建立一个按钮 宽度 为 100 。
那么不管在哪个分辨率下,宽度都是100。
但是,在同一显示器的不同分辨率下,看到的大小是不一致的。
wen_eric 2011-12-30
  • 打赏
  • 举报
回复
我想也是图素发生了变化窗口才发生变化的,看了一下关于映射方式的东西,可惜没看懂。[Quote=引用 2 楼 saleayas 的回复:]
Windows 控件好像是基于像素的。
只有到了 .NET 才支持更多的单位的。
所以一般都是不变的。
[/Quote]
wen_eric 2011-12-30
  • 打赏
  • 举报
回复
GetWindowRect获取的是窗口在屏幕坐标系下的大小,能说具体一点吗?[Quote=引用 1 楼 chengbar 的回复:]
GetWindowRect
[/Quote]
Saleayas 2011-12-30
  • 打赏
  • 举报
回复
Windows 控件好像是基于像素的。
只有到了 .NET 才支持更多的单位的。
所以一般都是不变的。
加载更多回复(1)

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧