Windows操作系統提供給應用程序編程的接口(Application Programming Interface)–API函數
所有主要的Windows函數都在Windows.h頭文件中進行了聲明。
句柄—資源的標識號。
消息啊由MSG結構體來表示的。
typedef struct tagMSG {
HWND hwnd; //消息所屬窗口
UINT message; //消息標識符①
WPARAM wParam; //消息的附加消息 unsigned ②
LPARAM lParam; //消息的附加消息 long
DWORD time; //時間 (int)
POINT pt; //光標位置
} MSG, *PMSG, *LPMSG;
① Windows將消息對應的數值定義為WM_XXX宏的形式
② 例:鍵盤按下那個鍵的ascii碼
基本win32程序實現步驟:
Ⅰ:WinMain函數的定義
Ⅱ:創建一個窗口
Ⅲ:進行消息循環
Ⅳ:編寫窗口過程函數
WinMain函數
int WINAPI WinMain(
HINSTANCE hInstance, //當前運行實例的句柄
HINSTANCE hPrevInstance, //前一個實例的句柄 ①
LPSTR lpCmdLine, //以空終止的字符串,指定傳遞給應用程序的命令行參數
int nCmdShow //窗口顯示的狀態
);
① Win32環境下,這個參數總是NULL
創建一個窗口的具體步驟:
Ⅰ:設計一個窗口類
Ⅱ:注冊窗口類
Ⅲ:創建窗口
Ⅳ:顯示及更新窗口
WNDCLASS結構體實現窗口類設計
typedef struct tagWNDCLASS {
UINT style; //窗口的樣式(可以用&~去掉不需要的樣式)
WNDPROC lpfnWndProc; //指向窗口過程函數(回調函數)的指針
int cbClsExtra; //類窗口附加內存,一般設為0
int cbWndExtra; //窗口附加內存,一般為0
HINSTANCE hInstance; //實例句柄
HICON hIcon; //圖標句柄①
HCURSOR hCursor; //鼠標句柄②
HBRUSH hbrBackground; //背景畫刷句柄③
LPCTSTR lpszMenuName;//菜單名,設NULL則沒有窗口,菜單不是一個窗口
LPCTSTR lpszClassName;窗口類名
} WNDCLASS, *PWNDCLASS;