1. 程式人生 > >WIN32視窗類風格和視窗風格(備查詢)

WIN32視窗類風格和視窗風格(備查詢)

一.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 視窗有垂直滾動條