MFC 子窗口的控件如何随父窗口的改变而改变?

惜双若雅 2016-09-20 05:53:23
写了一个程序,父窗口的控件可以随窗口界面变化而改变,子窗口中的控件却不改变大小,子窗口中改变大小的程序与父窗口相同,请大家帮忙看下问题出现在哪?代码及结果如图所示:





结果为:




...全文
686 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
用户 昵称 2016-09-22
  • 打赏
  • 举报
回复
俺很早以前写过一个demo,这个demo有很多不足,比如没有判断控件的类型,有些控件是不能缩放的。 http://download.csdn.net/source/1683779
syy64 2016-09-22
  • 打赏
  • 举报
回复
向子窗口中发送 WM_SIZE 消息。
goodluck365168 2016-09-21
  • 打赏
  • 举报
回复
有个easysize技术,楼主查下 http://www.codeproject.com/Articles/1657/EasySize-Dialog-resizing-in-no-time
goodluck365168 2016-09-21
  • 打赏
  • 举报
回复
有个easysize技术,楼主查下
sumos 2016-09-21
  • 打赏
  • 举报
回复
OnSize函数 if (nType != SIZE_MINIMIZED) { resize(); }
lonelyhacker 2016-09-21
  • 打赏
  • 举报
回复
1.在OnInitDialog中,先获取到每个控件的rect保存 2.在OnSize调用Resize。 3.Resize里面就是针对每个控件修改它的大小. 如: OnInitDialog() { m_Button.GetWindowRect(&m_Rect); ScreenToClient(m_Rect); } Resize() //这里的坐标就要你自己去确定具体的位置了。 { CRect rectWindow, rectTemp; this->GetWindowRect(&rectWindow); ScreenToClient(rectWindow); rectTemp = m_Rect; m_Rect.bottom = rectWindow.bottom - 15; m_Button.MoveWindow(m_RectRoot); m_Rect = rectTemp; }
惜双若雅 2016-09-20
  • 打赏
  • 举报
回复
引用 2 楼 schlafenhamster 的回复:
“”窗口最大化时移动控件位置 “” http://download.csdn.net/detail/schlafenhamster/9621790 “窗口最大化时移动控件位置 会出现 2个 画面,多了一个最大化化后 控件还没有移动的画面。通过使用 WindowUpdate(); 禁止了这个画面,从而保证屏幕不闪烁。”
我想要的结果是子窗口的空间也同样变大,不是你所说的这种情况,不过还是谢谢啦
schlafenhamster 2016-09-20
  • 打赏
  • 举报
回复
“”窗口最大化时移动控件位置 “” http://download.csdn.net/detail/schlafenhamster/9621790 “窗口最大化时移动控件位置 会出现 2个 画面,多了一个最大化化后 控件还没有移动的画面。通过使用 WindowUpdate(); 禁止了这个画面,从而保证屏幕不闪烁。”
惜双若雅 2016-09-20
  • 打赏
  • 举报
回复

传错一张结果图了

15,979

社区成员

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

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