WIN32視窗類風格和視窗風格(備查詢)
阿新 • • 發佈:2018-12-26
一.WNDCLASS
typedef struct { UINT cbSize //這個結構體的長度,一般用sizeof(WNDCLASSEX)設定 UINT style //視窗式樣 WNDPROC lpfnWndProc //視窗訊息處理的函式名 int cbClsExtra //分配給視窗類結構之後的額外位元組數,一般為0 int cbWndExtra //分配給視窗例項之後的額外位元組數,一般為0 HINSTANCE hInstance //想要申請的視窗例項控制代碼 HICON hIcon //執行時的圖示,NULL時取系統預設圖示 HCURSOR hCursor //游標 HBRUSH hbrBackground //背景 LPCTStr lpszMenuName //選單 LPCTStr lpszClassName //視窗名 HICON hIconSm; //縮小時的圖示,NULL時取系統預設圖示 } WNDCLASSEX, *PWNDCLASSEX;
視窗式樣style的值可用下表的值組合起來設定,視窗處理函式名lpfnWndProc和hInstance不能設定錯。游標有2個hIcon和hIconSm,當取不到值時自動分配一個系統預設值。游標hCursor可選擇下面的游標ID設定到結構體中去。關於圖示、背景、選單後面有專門章節介紹。下面在上一章的基礎之上,修改部分資料,看看有什麼變化。
設定值 | 解說 |
---|---|
CS_HREDRAW | 視窗客戶區寬度發生改變時重繪視窗 |
CS_VREDRAW | 視窗客戶區高度發生改變時重繪視窗 |
CS_DBLCLKS | 滑鼠雙擊時系統所發的訊息 |
CS_NOCLOSE | 禁用系統選單中的“關閉”命令 |
CS_OWNDC | 為該視窗類的各視窗分配各自獨立的裝置環境 |
CS_CLASSDC | 為該視窗類的各視窗分配一個共享的裝置環境 |
CS_PARENtdC | 指定子視窗繼承其父視窗的裝置環境 |
CS_SAVEBITS | 把被視窗覆蓋的螢幕部分作為點陣圖儲存起來。 當視窗被重新整理時,系統使用被儲存的點陣圖來重畫視窗。 |
CS_BYTEALIGNCLIENT | Aligns the window's client area on a byte boundary (in the x direction). This style affects the width of the window and its horizontal placement on the display. |
CS_BYTEALIGNWINDOW | Aligns the window on a byte boundary (in the x direction). This style affects the width of the window and its horizontal placement on the display. |
CS_GLOBALCLASS | Specifies that the window class is an application global class. For more information, see Application Global Classes. |
二.WS_
HWND CreateWindow(
LPCTSTR lpClassName, //視窗名
LPCTSTR lpWindowName, //視窗標題
DWORD dwStyle, //視窗式樣
int x, //視窗左上角的x座標
int y, //視窗左上角的y座標
int nWidth, //視窗的寬度
int nHeight, //視窗的高度
HWND hWndParent, //父視窗控制代碼
HMENU hMenu, //選單控制代碼
HINSTANCE hInstance, //例項控制代碼
LPVOID lpParam //建立引數
);
設定值 | 解說 |
---|---|
WS_OVERLAPPEDWINDOW | 層疊式視窗,有邊框、標題欄、系統選單、最大最小化按鈕,是以下幾種風格的集合:WS_OVERLAPPED, WS_CAPTION, WS_SYSMENU, WS_THICKFRAME, WS_MINIMIZEBOX, WS_MAXIMIZEBOX |
WS_POPUPWINDOW | 彈出式視窗,是以下幾種風格的集合: WS_BORDER,WS_POPUP,WS_SYSMENU。WS_CAPTION與WS_POPUPWINDOW風格一起使用時視窗選單才能可見 |
WS_OVERLAPPED | 層疊式視窗,有標題欄和邊框,與WS_TILED風格類似 |
WS_POPUP | 彈出式視窗,與WS_CHILD不能同時使用 |
WS_BORDER | 視窗有單線邊框 |
WS_CAPTION | 視窗有標題欄 |
WS_CHILD | 子視窗,不能與WS_POPUP同時使用 |
WS_DISABLED | 為無效視窗 |
WS_HSCROLL | 水平滾動條 |
WS_ICONIC | 初始化為最小化 |
WS_MAXIMIZE | 初始化為最大化 |
WS_MAXIMIZEBOX | 有最大化按鈕 |
WS_MINIMIZE | 與WS_MAXIMIZE一樣 |
WS_MINIMIZEBOX | 視窗有最小化按鈕 |
WS_SIZEBOX | 邊框可進行大小控制的視窗 |
WS_SYSMENU | 建立一個有系統選單的視窗,必須與WS_CAPTION風格同時使用 |
WS_THICKFRAME | 建立一個大小可控制的視窗,與WS_SIZEBOX風格一樣. |
WS_TILED | 建立一個層疊式視窗,有標題欄 |
WS_VISIBLE | 視窗為可見 |
WS_VSCROLL | 視窗有垂直滾動條 |