浅谈MFC 改变控件大小和位置
用CWnd类的函数MoveWindow()或SetWindowPos()可以改变控件的大小和位置。
voidMoveWindow(intx,inty,intnWidth,intnHeight);
voidMoveWindow(LPCRECTlpRect);
第一种用法需给出控件新的坐标和宽度、高度;
第二种用法给出存放位置的CRect对象;
例:
CWnd*pWnd; pWnd=GetDlgItem(IDC_EDIT1);//获取控件指针,IDC_EDIT1为控件ID号 pWnd->MoveWindow(CRect(0,0,100,100));//在窗口左上角显示一个宽100、高100的编辑控件
SetWindowPos()函数使用更灵活,多用于只修改控件位置而大小不变或只修改大小而位置不变的情况:
BOOLSetWindowPos(constCWnd*pWndInsertAfter,intx,inty,intcx,intcy,UINTnFlags);
第一个参数我不会用,一般设为NULL;
x、y控件位置;cx、cy控件宽度和高度;
nFlags常用取值:
SWP_NOZORDER:忽略第一个参数;
SWP_NOMOVE:忽略x、y,维持位置不变;
SWP_NOSIZE:忽略cx、cy,维持大小不变;
例:
CWnd*pWnd; pWnd=GetDlgItem(IDC_BUTTON1);//获取控件指针,IDC_BUTTON1为控件ID号 pWnd->SetWindowPos(NULL,50,80,0,0,SWP_NOZORDER|SWP_NOSIZE);//把按钮移到窗口的(50,80)处 pWnd=GetDlgItem(IDC_EDIT1); pWnd->SetWindowPos(NULL,0,0,100,80,SWP_NOZORDER|SWP_NOMOVE);//把编辑控件的大小设为(100,80),位置不变 pWnd=GetDlgItem(IDC_EDIT1); pWnd->SetWindowPos(NULL,0,0,100,80,SWP_NOZORDER);//编辑控件的大小和位置都改变
以上方法也适用于各种窗口。
以上所述就是本文的全部内容了,希望大家能够喜欢。