windows程序設計複習(一)

窗口創建過程

1.註冊窗口類

       定義一個WNDCLASS結構體,對結構體進行初始化,然後調用RegisterClass函數註冊該窗口類:

typedef struct
{
     UINT style ;//窗口的類別
     WNDPROC lpfnWndProc ;//窗口過程的地址
     int cbClsExtra ;
     int cbWndExtra ;
     HINSTANCE hInstance ;//程序實例句柄
     HICON hIcon ;//程序的圖標
     HCURSOR hCursor ;//遊標
     HBRUSH hbrBackground ;//窗口背景
     LPCTSTR lpszMenuName ;//菜單名
     LPCTSTR lpszClassName ;//窗口類名
}WNDCLASS, * PWNDCLASS ;

運用RegisterClass函數來註冊窗口類。 

2.運用CreateWindow函數來創建窗口。

3.顯示和更新窗口:運用ShowWindow函數和UpdateWindow函數來獲取和更新窗口。

4.消息循環

消息結構體:

typedef struct tagMSG
{
    HWND hwnd ;//發出消息的窗口句柄
    UINT message ;//消息
    WPARAM wParam ;
    LPARAM lParam ;
    DWORD time ;//消息發出的時間
    POINT pt ;//消息發出時鼠標的位置
}MSG, * PMSG

窗口循環實現:

while(GetMessage(.....))

{

     ShowWindow(......);

     UpdateWindow(......);
}

5.窗口處理過程處理消息

LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
     ......
    switch(message)
    {
        case 消息:
           ......
           break;
        .........
    }
    return DefWindowProc(hwnd,iMsg,wParam,lParam);
}

6.消息

1)WM_CREATE

觸發:當調用CreateWindow和CreateWindowEx函數創建窗口時

參數:LPCREATESTRUCT lpcs = (LPCREATESTRUCT) lParam;

2)WM_SIZE

觸發:當創建窗口時;窗口大小發生變化時

參數:fwSizeType = wParam; nWidth = LOWORD(lParam); nHeight = HIWORD(lParam);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章