MFC控件位置随窗体大小而改变
2015-04-14 13:44
281 查看
因为在做上位机,需要MFC中的控件位置随窗体大小而改变,以下是代码:
首先初始化CRect m_rect,该成员变量用来记录窗体的当前大小。
首先初始化CRect m_rect,该成员变量用来记录窗体的当前大小。
void CTEST4View::OnSize(UINT nType, int cx, int cy) { CFormView::OnSize(nType, cx, cy); CWnd *pWnd=NULL; this->GetWindowRect(&m_rect);//获取当前窗体的坐标 if(nType==1) return;//<span style="color: rgb(70, 70, 70); line-height: 26px;"><span style="font-family:SimSun;font-size:10px;">这一句必须添加,否则最小化恢复的时候会出错。</span></span> pWnd = GetDlgItem(IDC_BUTTON1); //获取控件句柄 if(pWnd) { CRect rect; //获取控件变化前的大小 pWnd->GetWindowRect(&rect); //控件在窗口坐标系下的位置 ScreenToClient(&rect); //将窗口坐标系下的位置转换为控件坐标系下的位置 int cwidth =0; int cheight = 0; cwidth =rect.right-rect.left; cheight = rect.bottom - rect.top; if(m_rect.Width()!=0&&m_rect.Height()!=0){ rect.left=0.8*m_rect.Width(); rect.right=0.8*m_rect.Width()+cwidth; rect.top=0.8*m_rect.Height(); rect.bottom=0.8*m_rect.Height()+cheight; pWnd->MoveWindow(rect);//设置控件大小 } } GetClientRect(&m_rect);//将变化后的窗口大小设为旧大小 }关于GetWindowRect和GetClientRect这两个函数,以下内容摘自一篇博客,令鄙人受益匪浅,拿来和大家一起分享:
相关文章推荐
- MFC控件大小随窗体改变而改变
- 在MFC中怎么样让控件的大小随着主窗体大小改变而改变
- MFC控件大小随窗体大小而改变
- 当窗体最大化后,如何让窗体里面的控件也随之改变大小和位置
- MFC 控件大小随窗体改变而改变大小-OnSize
- MFC中改变控件的大小和位置
- Qt Designer 修改窗体大小改变控件位置
- mfc改变picture控件的大小和位置
- MFC 改变控件大小和位置
- MFC 改变控件大小和位置
- winform中,如何控制控件位置随窗体的大小改变而改变
- 【C++】MFC 改变控件大小和位置
- winform中,如何控制控件位置随窗体的大小改变而改变
- MFC 控件大小随窗体改变而改变大小
- MFC中改变控件的大小和位置
- MFC控件大小随窗体改变而改变 .
- C++ MFC 改变控件大小和位置
- 在MFC中怎么样让控件的大小随着主窗体大小改变而改变
- MFC控件大小随窗体大小而改变
- MFC 控件大小随窗体改变而改变大小