对话框改变大小后怎么办??

meteor108 2004-03-22 01:26:52
一个小问题,就是一个对话框在改变大小后怎样使它上面所有的控件都能一起随对话框改变大小阿??用那个函数可以实现阿???
...全文
44 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
gufengduyu 2004-03-22
  • 打赏
  • 举报
回复
文档视图里也要自己一个一个移动
meteor108 2004-03-22
  • 打赏
  • 举报
回复
那如果是在多文档视图程序里(基于CFormView类)要怎么移动啊?这回不用一个一个的移动了把!
oiwenwen 2004-03-22
  • 打赏
  • 举报
回复
看来只好一个一个的移了

如果控件很多的话
偶倒是建议固定大小算了
gufengduyu 2004-03-22
  • 打赏
  • 举报
回复
对话框每次改变大小,都会调用OnSize函数,其中参数cx表示改变完后的对话框客户区的宽度,cy是高度,客户区左上角开始坐标是(0,0),知道了这些,你就可以控制所有控件的移动了
gufengduyu 2004-03-22
  • 打赏
  • 举报
回复
我贴的代码中移动了一个控件
其它的控件类似
没办法,你就得一个一个的移动
meteor108 2004-03-22
  • 打赏
  • 举报
回复
我是个新手,能讲得再具体些吗(最好再贴上一段),谢谢啦!!!
fzd999 2004-03-22
  • 打赏
  • 举报
回复
用MoveWindow和SetWindowPos,配合GetWindowRect、GetClientRect、ClientToScreen使用
fzd999 2004-03-22
  • 打赏
  • 举报
回复
用MoveWindow和SetWindowPos都可以做到
meteor108 2004-03-22
  • 打赏
  • 举报
回复
可是上面有一大堆的控件怎么办阿,总不能一个一个的移阿
gufengduyu 2004-03-22
  • 打赏
  • 举报
回复
响应WM_SIZE消息
在对应处理函数OnSize中自己添加代码:
void CXXXDlg::OnSize(UINT nType, int cx, int cy)
{
CDialog::OnSize(nType, cx, cy);
......
CStatic *pStatic = (CStatic *)GetDlgItem(IDC_ST_PAGE);
pStatic ->MoveWindow(12,12, cx - 12*2, cy - 36 );//自己控制控件的移动
}
快乐鹦鹉 2004-03-22
  • 打赏
  • 举报
回复
没有现成函数。自己用MoveWindow函数调整吧、

15,979

社区成员

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

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