C MFC 改變控制項大小和位置

2021-07-24 15:57:04 字數 1146 閱讀 8108

用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 ); //編輯控制項的大小和位置都改變

以上方法也適用於各種視窗。

C MFC 改變控制項大小和位置

用cwnd類的函式movewindow 或setwindowpos 可以改變控制項的大小和位置。void movewindow int x,int y,int nwidth,int nheight void movewindow lpcrect lprect 第一種用法需給出控制項新的座標和寬度 高...

android 動態改變控制項位置和大小

動態改變控制項位置的方法 setpadding 的方法更改布局位置。如我要把imageview下移200px imageview.setpadding imageview.getpaddingleft imageview.getpaddingtop 200,imageview.getpaddingr...

在MFC中改變控制項大小和位置

用cwnd類的函式movewindow 或setwindowpos 可以改變控制項的大小和位置。void movewindow int x,int y,int nwidth,intnheight void movewindow lpcrect lprect 第一種用法需給出控制項新的座標和寬度 高度...