創建一個窗口

用函數CreateWindow()或CreateWindowEx()來創建窗口(或任何其他類似於窗口的對象,如控件)。創建窗口時必須提供窗口類的文本名稱,這個窗口類名稱爲之前想系統申請的類名稱,用於表示窗口類。下面是CreateWindowEx()的函數原型:
CreateWindowEx(
DWORD 	dwExStyle,//窗口的擴展風格,是一種高級功能,一般都爲NULL
LPCTSTR	lpClassName,//指向註冊類名的字符串指針
LPCTSTR	lpWindowName,//指向窗口名稱的字符串指針
DWORD	dwStyle,//常規窗口風格
int	x,//窗口左上角的的水平位置,單位都爲像素
int	y,//窗口左上角的的垂直位置
int	nWidth,//窗口的寬度
int	nHeight,//窗口的高度
HWND	hWndParent,//父窗口的句柄
HMENU	hMenu,//菜單的句柄或是子窗口的標識符
HINSTANCE	hInstance,//應用程序實例的句柄
LPVOIDl	pParam//指向窗口的創建數據,高級參數,一般爲NULL
);



窗口的風格又有以下這些種類:
WS_BORDER:創建一個帶邊框的窗口。
WS_CAPTION:創建一個有標題框的窗口(包括WS_BORDER風格)。
WS_CHILD:創建一個子窗口。這個風格不能與WS_POPUP風格合用。
WS_CHILDWINDOW:與WS_CHILD相同。
WS_CLIPCHILDREN:當在父窗口內繪圖時,排除子窗口區域。在創建父窗口時使用這個風格。
WS_CLIPSIBLINGS:排除子窗口之間的相對區域,也就是,當一個特定的窗口接收到WM_PAINT消息時,WS_CLIPSIBLINGS 風格將所有層疊窗口排除在繪圖之外,只重繪指定的子窗口。如果未指定WS_CLIPSIBLINGS風格,並且子窗口是層疊的,則在重繪子窗口的客戶區時,就會重繪鄰近的子窗口。
WS_DISABLED:創建一個初始狀態爲禁止的子窗口。一個禁止狀態的窗口不能接受來自用戶的輸入信息。
WS_DLGFRAME:創建一個帶對話框邊框風格的窗口。這種風格的窗口不能帶標題條。
WS_GROUP:指定一組控制的第一個控制。這個控制組由第一個控制和隨後定義的控制組成,自第二個控制開始每個控制,具有WS_GROUP風格,每個組的第一個控制帶有WS_TABSTOP風格,從而使用戶可以在組間移動。用戶隨後可以使用光標在組內的控制間改變鍵盤焦點。
WS_HSCROLL:創建一個有水平滾動條的窗口。
WS_ICONIC:創建一個初始狀態爲最小化狀態的窗口。與WS_MINIMIZE風格相同。
WS_MAXIMIZE:創建一個初始狀態爲最大化狀態的窗口。
WS_MAXIMIZEBOX:創建一個具有最大化按鈕的窗口。該風格不能與WS_EX_CONTEXTHELP風格同時出現,同時必須指定WS_SYSMENU風格。
WS_OVERLAPPED:產生一個層疊的窗口。一個層疊的窗口有一個標題條和一個邊框。與WS_TILED風格相同。
WS_OVERLAPPEDWINDOW:創建一個具有WS_OVERLAPPED,WS_CAPTION,WS_SYSMENU WS_THICKFRAME,WS_MINIMIZEBOX,WS_MAXIMIZEBOX風格的層疊窗口,與WS_TILEDWINDOW風格相同。
WS_POPUP:創建一個彈出式窗口。該風格不能與WS_CHILD風格同時使用。
WS_POPUPWINDOW:創建一個具有WS_BORDER,WS_POPUP,WS_SYSMENU風格的窗口,WS_CAPTION和WS_POPUPWINDOW必須同時設定才能使窗口某單可見。
WS_SIZEBOX:創建一個可調邊框的窗口,與WS_THICKFRAME風格相同。
WS_SYSMENU:創建一個在標題條上帶有窗口菜單的窗口,必須同時設定WS_CAPTION風格。
WS_TABSTOP:創建一個控制,這個控制在用戶按下Tab鍵時可以獲得鍵盤焦點。按下Tab鍵後使鍵盤焦點轉移到下一具有WS_TABSTOP風格的控制。
WS_THICKFRAME:創建一個具有可調邊框的窗口,與WS_SIZEBOX風格相同。
WS_TILED:產生一個層疊的窗口。一個層疊的窗口有一個標題和一個邊框。與WS_OVERLAPPED風格相同。
WS_TILEDWINDOW:創建一個具有WS_OVERLAPPED,WS_CAPTION,WS_SYSMENU, WS_THICKFRAME,WS_MINIMIZEBOX,WS_MAXIMIZEBOX風格的層疊窗口。與WS_OVERLAPPEDWINDOW風格相同。
WS_VISIBLE:創建一個初始狀態爲可見的窗口。
WS_VSCROLL:創建一個有垂直滾動條的窗口。


窗口創建後,其狀態爲可見或不可見。可以用ShowWindow(hwnd,ncmdshow)來手動顯示窗口。
強制Windows更新窗口內容並生成一個WM_PAINT消息通過調用函數UpdateWindow()來完成。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章