关于界面

happy198707 2010-11-29 07:17:48
用MFC开发界面时,经常遇到各种显示器大小不一样,导致控件位置偏移。

我现在用的是GetSystemMetrics先获得屏幕大小,除以一个调试机器的标准窗口的大小,得到一个比例,然后,每个控件的位置坐标都乘以这个比例,不过感觉这种方法比较笨,各位,有没有更好的方法?
...全文
137 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2010-12-21
  • 打赏
  • 举报
回复
您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知

见此回复三日内无回应
我们将强制结帖

相关规定详见界面界面版关于版主结帖工作的具体办法
向立天 2010-11-30
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 happy198707 的回复:]
但是这样就会有很多这样的代码,显得很繁琐:

this->GetDlgItem(IDC_SEPARATOR)->MoveWindow(0,62*m_fyScale,1300*m_fxScale,1*m_fyScale);
this->GetDlgItem(IDC_EDIT_USER)->MoveWindow(400*m_fxScale,585*m_fyScale,60*m_fxScale,2……
[/Quote]
这就要看你怎么组织了
关于适配控件网上也有很多实现啊
比如http://blog.csdn.net/xianglitian/archive/2010/06/12/5667015.aspx
Eleven 2010-11-30
  • 打赏
  • 举报
回复
MoveWindow/SetWindowPos()整吧
muzizongheng 2010-11-30
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 happy198707 的回复:]
但是这样就会有很多这样的代码,显得很繁琐:

this->GetDlgItem(IDC_SEPARATOR)->MoveWindow(0,62*m_fyScale,1300*m_fxScale,1*m_fyScale);
this->GetDlgItem(IDC_EDIT_USER)->MoveWindow(400*m_fxScale,585*m_fyScale,60*m_fxScale,2……
[/Quote]

是啊, 没办法 。 我刚开始看这种代码, 也很烦。
那你用wpf吧。 嘿嘿。
happy198707 2010-11-30
  • 打赏
  • 举报
回复
但是这样就会有很多这样的代码,显得很繁琐:

this->GetDlgItem(IDC_SEPARATOR)->MoveWindow(0,62*m_fyScale,1300*m_fxScale,1*m_fyScale);
this->GetDlgItem(IDC_EDIT_USER)->MoveWindow(400*m_fxScale,585*m_fyScale,60*m_fxScale,20*m_fyScale);
this->GetDlgItem(IDC_EDIT_PSW)->MoveWindow(515*m_fxScale,585*m_fyScale,60*m_fxScale,20*m_fyScale);

每个空间都必须乘以这个比例,代码显得很冗余。
向立天 2010-11-30
  • 打赏
  • 举报
回复
这个方法很通用了
所谓更好的方法也就是在底层通过这种方法实现而表面上让人感觉更方便一些罢了
tigerMayDo 2010-11-30
  • 打赏
  • 举报
回复
一般人都这么做 高手就不知道了
m_tornado 2010-11-30
  • 打赏
  • 举报
回复
不是一般都这么来么?
muzizongheng 2010-11-30
  • 打赏
  • 举报
回复
是这样的。 我的mdi程序都是这样定义的。

vc没办法。 不像wpf, 都是矢量图, 没有这个问题。
hnxtwf 2010-11-30
  • 打赏
  • 举报
回复
网上有很多例子
happy198707 2010-11-30
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 visualeleven 的回复:]
MoveWindow/SetWindowPos()整吧
[/Quote]

说详细点,能给个例子最好

15,978

社区成员

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

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