乙個視窗居中的例子 Win32

2021-04-12 14:16:13 字數 1975 閱讀 9074

要實現視窗居中顯示並不難,只要在窗體建立的時候我們設定視窗的位置就可以了.在這裡我們主要用到3個api函式,分別是:getsy**etrics,getwindowrect,setwindowpos.

我們用getsy**etrics來獲的螢幕的寬度和高度,然後用getwindowrect來獲取視窗的座標.通過運算後計算出居中視窗的位置,最後用setwindowpos來設定窗體的位置.整個過程就是如此,而這些部步驟我們都要在視窗建立之前設定好,所以我們要把這些實現方法寫進wm_create訊息中.

現在讓我們看一下,以上3個api函式的解釋,下面的說明是從getsystemmetrics

函式功能:

返回與windows

環境有關的資訊。

函式原型:int getsystemmetrics(int nindex)

引數:nindex:

常數,指定欲獲取的資訊。由於取值很多,所以在這裡不一一枚舉了,本例子只用到兩個常數值:

**_cxscreen:螢幕寬度。

**_cyscreen:螢幕高度。

getwindowrect

函式功能:該函式返回指定視窗的邊框矩形的尺寸。該尺寸以相對於螢幕座標左上角的螢幕座標給出。

函式原型:bool getwindowrect(hwnd hwnd,lprectlprect);

引數:hwnd:視窗控制代碼。

lprect:指向乙個rect結構的指標,該結構接收視窗的左上角和右下角的螢幕座標。

返回值:如果函式成功,返回值為非零:如果函式失敗,返回值為零。

setwindowpos

函式功能:該函式改變乙個子視窗,彈出式視窗式頂層視窗的尺寸,位置和z序。子視窗,彈出式視窗,及頂層視窗根據它們在螢幕上出現的順序排序、頂層視窗設定的級別最高,並且被設定為z序的第乙個視窗。

函式原型:bool setwindowpos(hwn hwnd,hwnd hwndlnsertafter,int x,int y,int cx,int cy,unit.flags);

引數:hwnd:視窗控制代碼。

hwndlnsertafter:在z序中的位於被置位的視窗前的視窗控制代碼。該引數必須為乙個視窗控制代碼,或下列值之一:

hwnd_bottom:將視窗置於z序的底部。如果引數hwnd標識了乙個頂層視窗,則視窗失去頂級位置,並且被置在其他視窗的底部。

hwnd_dottopmost:將視窗置於所有非頂層視窗之上(即在所有頂層視窗之後)。如果視窗己經是非頂層視窗則該標誌不起作用。

hwnd_top:將視窗置於z序的頂部。

hwnd_topmost:將視窗置於所有非頂層視窗之上。即使視窗未被啟用視窗也將保持頂級位置。

查g看該引數的使用方法,請看說明部分。

x:以客戶座標指定視窗新位置的左邊界。

y:以客戶座標指定視窗新位置的頂邊界。

cx:以畫素指定視窗的新的寬度。

cy:以畫素指定視窗的新的高度。

uflags:視窗尺寸和定位的標誌。

hresult callback wndproc(hwnd hwnd,uint msg,wparam wparam,lparam lparam)

return defwindowproc(hwnd,msg,wparam,lparam);}

發布於2006-11-30 20:51:13 評3分

//獲得螢幕尺寸

scrwidth=getsystemmetrics(**_cxscreen);

scrheight=getsystemmetrics(**_cyscreen);

//獲取窗體尺寸

getwindowrect(hwnddlg,&rect);

//設定窗體位置

setwindowpos(hwnddlg,hwnd_topmost,(scrwidth-rect.right)/2,(scrheight-rect.bottom)/2,rect.right-rect.left,rect.bottom-rect.top,swp_showwindow);

建立乙個win32視窗程式

include stdafx.h 2hinstance g hinst null 3 視窗處理函式 lresult callback wndproc hwnd hwnd,視窗控制代碼 uint nmsg,視窗訊息id wparam wparam,訊息傳來的兩個引數 lparam lparam 返回預...

win32視窗的大小,居中,拖動

參考 視窗風格設定,後面兩個是最大最小化按鈕 dwstyle ws thickframe ws maximizebox ws minimizebox 訊息迴圈裡新增 case wm nclbuttondown break 1.設定視窗位置和大小 setwindowpos hwnd hwnd 視窗控制...

Win32基礎程式設計 第乙個視窗程式(一)

1.windows程式設計基礎注意 1 不要背函式,猜函式是一項技能,理解 猜。windows源 不公開,根據自己掌握的知識推理。2 常識性的東西要掌握。2.簡歷乙個視窗程式 看一下wincreate.cpp,winmain是入口函式 編譯鏈結,執行一下,hello world 字串不在 中,在資源...