实现这个功能的核心是调节控件的位置和大小,这里我采用了CWnd类的SetWindowPos()函数,使用该函数之前必须先获得控件的指针,使用GetDlgItem()来做到这一点。两个函数的原型如下:
|
CWnd* GetDlgItem(int nID)const; |
|
BOOL SetWindowPos(const CWnd* pWndInsertAfter,int x,int y,int cx,int cy,UINT nFlags); |
这样,当需要重新设定某控件位置时,可采用:
CWnd *pWnd;
pWnd = GetDlgItem( IDC_EDIT1 ); //获取编辑控件指针
pWnd->SetWindowPos( NULL,x,y,0,0,SWP_NOZORDER | SWP_NOSIZE ); //把控件移到窗口的(x,y)处,大小不变
当需要重新设定某控件大小时,可采用:
pWnd = GetDlgItem( IDC_EDIT1 );
pWnd->SetWindowPos( NULL,0,0,cx,cy,SWP_NOZORDER | SWP_NOMOVE ); //把控件的大小改为(cx,cy),位置不变
当采用:
pWnd = GetDlgItem( IDC_EDIT1 );
pWnd->SetWindowPos( NULL,x,y,cx,cy,SWP_NOZORDER );
则控件的大小和位置都会改变。
本文介绍如何使用CWnd类的SetWindowPos()函数和GetDlgItem()函数来调整控件的位置和大小。通过实例展示了如何仅改变控件的位置而不改变其大小,如何仅改变控件的大小而不改变其位置,以及如何同时改变控件的大小和位置。
3418

被折叠的 条评论
为什么被折叠?



