1、獲取螢幕解析度
//2、獲取對話方塊窗體大小及其螢幕座標下邊兩個函式獲取的是顯示螢幕的大小,但不包括工作列等區域
int cx =getsystemmetrics(sm_cxfullscreen);
int cy =getsystemmetrics(sm_cyfullscreen);
//下邊這兩個函式獲取的是真正螢幕的大小:螢幕解析度
int nwidth=getsystemmetrics(sm_cxscreen); //
螢幕寬度
int nheight=getsystemmetrics(sm_cyscreen); //
螢幕高度
cstring strscreen;
strscreen.format(l
"%d,%d
",nwidth,nheight);
messagebox(strscreen);
//3、獲取控制項大小和位置對話方塊窗體大小及其螢幕座標
crect rectdlg;
//法1:
getclientrect(rectdlg);//
獲得窗體的大小
//法2:
//getwindowrect(rectdlg);
//獲得窗體在螢幕上的位置
//screentoclient(rectdlg);
cstring strdlg;
strdlg.format(l
"%d,%d,%d,%d
",rectdlg.left,rectdlg.top,rectdlg.width(),rectdlg.height());
messagebox(strdlg);
//總結:控制項大小和位置
crect rectctrl;
cstatic *p=(cstatic*)getdlgitem(idc_static_test);
p->movewindow(100
,100
,100
,100
);//
更改控制項大小並移動其到指定位置
p->getwindowrect(rectctrl);
this
->screentoclient(rectctrl);
//getdlgitem(idc_static_test)->getclientrect(rectctrl);
cstring str;
str.format(l
"%d,%d,%d,%d
",rectctrl.left,rectctrl.top,rectctrl.width(),rectctrl.height());
messagebox(str);
1、getsystemmetrics() --> 用於得到被定義的系統資料或者系統配置資訊;
2、getclientrect() --> 得到客戶區的位置和大小,一般用於獲取視窗大小;
3、getwindowrect() --> 得到視窗(對話方塊或控制項)的螢幕座標,一般用於獲取對話方塊的螢幕座標或和screentoclient()配合使用獲取控制項的客戶區座標;
4、screentoclient() --> 螢幕座標轉換為客戶區座標,一般和getwindowrect()配合使用獲取控制項的客戶區座標
MFC視窗位置和大小的獲取
最近在做乙個專案,需要控制項隨對話方塊大小的變化而變化,因此需要準確獲取對話方塊視窗 控制項的大小和位置。經過好一番查尋 測試,終於看到了希望。下面是一些獲取視窗位置和大小的函式,示例如下 1 獲取螢幕解析度 下邊兩個函式獲取的是顯示螢幕的大小,但不包括工作列等區域 int cx getsystem...
獲取視窗大小
getclientrect 以視窗客戶區左上角為基準。getwindowrect 以螢幕左上角為基準。getwindowrect screentoclient getclientrect getclientrect clienttoscreen getwindowrect mapwindowpoin...
MFC 視窗控制代碼獲取
控制代碼獲取方法 獲取該視窗的控制代碼後,即可向該視窗類類傳送訊息 處理程式 0。獲取所在類視窗的控制代碼 this m hwnd 1。主視窗的控制代碼 無論在主視窗類內,還是子視窗類內,獲取主視窗控制代碼的方法 afxgetmainwnd m hwnd,如 sendmessage afxgetma...