淺談MFC 轉變控件年夜小和地位。本站提示廣大學習愛好者:(淺談MFC 轉變控件年夜小和地位)文章只能為提供參考,不一定能成為您想要的結果。以下是淺談MFC 轉變控件年夜小和地位正文
用CWnd類的函數MoveWindow()或SetWindowPos()可以轉變控件的年夜小和地位。
void MoveWindow(int x,int y,int nWidth,int nHeight);
void MoveWindow(LPCRECT lpRect);
第一種用法需給出控件新的坐標和寬度、高度;
第二種用法給出寄存地位的CRect對象;
例:
CWnd *pWnd; pWnd = GetDlgItem( IDC_EDIT1 ); //獲得控件指針,IDC_EDIT1為控件ID號 pWnd->MoveWindow( CRect(0,0,100,100) ); //在窗口左上角顯示一個寬100、高100的編纂控件
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,保持年夜小不變;
例:
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 ); //編纂控件的年夜小和地位都轉變
以上辦法也實用於各類窗口。
以上所述就是本文的全體內容了,願望年夜家可以或許愛好。