您的位置:首页 > 其它

MFC的控件大小如何随对话框改变

2013-09-27 14:40 316 查看
1.右键对话框---类向导--消息选择WM_SIZE  添加 处理程序 onsize

2.

void CHttpResp::OnSize(UINT nType, int cx, int cy)

{

 CDialogEx::OnSize(nType, cx, cy);

 // TODO: 在此处添加消息处理程序代码

 if(!IsWindowVisible())

  return;

 //获取客户区矩形

 CRect rect;

 GetClientRect(&rect);

 //动态改变控件大小

 CWnd *m_editcontrol=GetDlgItem(IDC_EDIT1);

 m_editcontrol->SetWindowPos(NULL,rect.right/5,rect.bottom/5,rect.right/2,rect.bottom/2,SWP_NOZORDER|SWP_SHOWWINDOW);

//或者

m_editcontrol->Window(rect.right/5,rect.bottom/5,rect.right/2,rect.bottom/2);

(1) MoveWindow():
              void MoveWindow(int x,int y,int nWidth,int nHeight);

              x, y为控件位置;nWidth、nHeight为控件宽度和高度

      (2) SetWindowPos():
              BOOL SetWindowPos(const CWnd* pWndInsertAfter,int x,int y,int cx,int cy,UINT nFlags);

              第一个参数一般设为NULL;

              x、y为控件位置;cx、cy为控件宽度和高度;

              nFlags常用取值:

                  SWP_NOZORDER:忽略第一个参数;

                  SWP_NOMOVE:忽略x、y,维持位置不变;

                  SWP_NOSIZE:忽略cx、cy,维持大小不变;

                  SWP_SHOWWINDOW:显示窗口

3.获取屏幕大小:(包括任务栏等区域)

int nfulwidth=GetSystemMetrics(SM_CXSCREEN);

int nfullheight=GetSystemMetrics(SM_CYSCREEN);

 

int cx=GetSystemMetrics(SM_CXFULLSCREEN);//屏幕宽度
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: