1. 程式人生 > >Windows編程1

Windows編程1

回調函數 更新窗口 創建 消息隊列 編程 register sta sla msg

一個最簡單的windows必須包括兩個函數:

1.入口函數:WinMain

2.窗口過程回調函數:WndProc

結構如下:

 1 #include <windows.h>
 2 
 3 //窗口過程回調函數
 4 LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam)
 5 {
 6     //對各種消息進行處理
 7     switch (msg)
 8     {
 9     case WM_CREATE:
10         
11         break;
12 
13 
14
default: 15 break; 16 } 17 18 return DefWindowProc(hwnd, msg, wparam, lparam);//把消息轉給系統自己處理 19 } 20 21 22 //相當於C語言裏面的main函數。返回消息的參數 23 int WINAPI WinMain(HINSTANCE hinstance, //當前實例句柄 24 HINSTANCE hPrevinsttance, 25 PSTR cmdLine, 26 int
cmdShow) 27 { 28 MSG msg; 29 //1.創建窗口 30 WNDCLASS wndclass; 31 //1.1設計窗口類 32 wndclass.lpfnWndProc = (WNDPROC)WndProc; 33 //設置wndclass的其余屬性 34 //2.2註冊窗口類 35 if (!RegisterClass(&wndclass)) 36 return 0; 37 //2.3創建窗口 38 HWND hwd = CreateWindow("
Z","X", 39 WS_OVERLAPPEDWINDOW, 40 100, 41 0, 42 100, 43 200, 44 NULL, 45 NULL, 46 hinstance, 47 NULL); 48 //2.4顯示和更新窗口 49 ShowWindow(hwd, cmdShow); 50 UpdateWindow(hwd); 51 //2.消息循環 52 while (GetMessage(&msg,NULL,0,0))//GetMessage在消息隊列裏面去消息放在msg裏面 53 { 54 TranslateMessage(&msg);//翻譯鍵盤消息 55 DispatchMessage(&msg);//發送給WndProc處理 56 } 57 return msg.wParam;//返回消息的參數 58 }

Windows編程1