MFC視窗及元件大小設定

2021-10-17 08:38:14 字數 2943 閱讀 5392

1.獲取桌面的大小,不包括狀態列

cxx =

getsystemmetrics

(sm_cxfullscreen)

;cyy =

getsystemmetrics

(sm_cyfullscreen)

;

2.獲取桌面的大小,包括狀態列 正真螢幕大小

cxx =

getsystemmetrics

(sm_cxscreen)

;cyy =

getsystemmetrics

(sm_cyscreen)

;

1.獲取軟體的大小

crect owindowrect;

getwindowrect

(&owindowrect )

;

2.獲取客戶區的大小(除去邊框)

crect oclientrect;

getclientrect

(&oclientrect )

;//獲取客戶區的大小

3.獲取邊框的大小

ulong cx = owindowrect.

width()

- oclientrect.

width()

;//視窗的寬 (邊框)

ulong cy = owindowrect.

height()

- oclientrect.

height()

;//視窗的高(邊框)

void

movewindow

(int x,

int y,

int nwidth,

int nheight, bool brepaint = true)

;

(x,y):設定視窗移動的位置,

(nwidth,nheight):設定視窗的大小

getdlgitem

(idc_button)

->

movewindow(0

,0,100,80

);

m_btn.

movewindow(0

,0,100,80

);

this->

movewindow(0

,0,100,80

);

setwindowpos功能比較全,包含了movewindow的全部功能,設定元件和設定螢幕大小是一樣的

getdlgitem

(idc_button)

->

setwindowpos

(null,0

,0,100,80

, swp_showwindw)

;

m_btn.

setwindowpos

(null,0

,0,100,80

, swp_showwindw)

;

this->

setwindowpos

(null,0

,0,100,80

, swp_showwindw)

;

或者

setwindowpos

(&cwnd:

:wndtop,0,

0,100,

80, swp_showwindw)

;

定位的標誌

#define swp_nosize          0x0001    不改變尺寸(忽略cx,cy)

#define swp_nomove 0x0002 不移動視窗位置(忽略x,y)

#define swp_nozorder 0x0004 維持當前z序(忽略hwndlnsertafter引數)

#define swp_noredraw 0x0008

#define swp_noactivate 0x0010

#define swp_framechanged 0x0020

/* the frame changed: send wm_nccalcsize */

#define swp_showwindow 0x0040 顯示視窗

#define swp_hidewindow 0x0080 隱藏視窗

#define swp_nocopybits 0x0100

#define swp_noownerzorder 0x0200

/* don't do owner z ordering */

#define swp_nosendchanging 0x0400

/* don't send wm_windowposchanging */

#define swp_drawframe swp_framechanged

#define swp_noreposition swp_noownerzorder

#define swp_defererase 0x2000

#define swp_asyncwindowpos 0x4000

m_btn.

showwindow

(true)

或者

getdlgitem

(idc_button)

->

showwindow

(true)

MFC中設定視窗大小位置

第一種方法 使用setwindowpos函式 cwnd setwindowposbool setwindowpos const cwnd pwndinsertafter,int x,int y,int cx,int cy,uint nflags 返回值如果函式成功,則返回非零值 否則返回0。說明 呼...

MFC中設定視窗大小位置

第一種方法 使用setwindowpos函式 cwnd setwindowposbool setwindowpos const cwnd pwndinsertafter,int x,int y,int cx,int cy,uint nflags 返回值如果函式成功,則返回非零值 否則返回0。說明 呼...

MFC獲取視窗大小

1 獲取螢幕解析度 下邊兩個函式獲取的是顯示螢幕的大小,但不包括工作列等區域 int cx getsystemmetrics sm cxfullscreen int cy getsystemmetrics sm cyfullscreen 下邊這兩個函式獲取的是真正螢幕的大小 螢幕解析度 int nw...