win32第一個windows視窗建立過程
阿新 • • 發佈:2021-09-05
- 視窗建立過程
1.定義WinMain函式
2.定義視窗處理函式(自定義,處理訊息)
3.註冊視窗類(向作業系統寫入一些資料)
4.建立視窗(記憶體中建立視窗)
5.顯示視窗(繪製視窗的影象)
6.訊息迴圈(獲取/翻譯/派發訊息)
訊息處理
- 操作步驟
1.建立專案
2.新建項
3.更改專案引用集
4.新增程式碼
#include <windows.h> //2.視窗處理函式(自定義,處理訊息) LRESULT CALLBACK WndProc(HWND hWnd, UINT msgID, WPARAM wParam, LPARAM IParam) { returnDefWindowProc(hWnd, msgID, wParam, IParam); } //1.入口函式 int CALLBACK WinMain( _In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPSTR lpCmdLine, _In_ int nShowCmd ) { //3.註冊視窗類 WNDCLASS wc = {0}; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); wc.hCursor = NULL; wc.hIcon = NULL; wc.hInstance = hInstance; wc.lpfnWndProc = WndProc; wc.lpszClassName = "Main"; wc.lpszMenuName = NULL; wc.style = CS_HREDRAW | CS_VREDRAW; RegisterClass(&wc);//將以上所有賦值全部寫入作業系統 //4.在記憶體建立視窗 HWND hWnd = CreateWindow("Main", "window", WS_OVERLAPPEDWINDOW, 100, 100, 500, 500, NULL, NULL, hInstance, NULL); //5.顯示視窗 ShowWindow(hWnd, SW_SHOW); UpdateWindow(hWnd); //6.訊息迴圈 MSG nMsg = {0}; while (GetMessage(&nMsg, NULL, 0, 0)) { TranslateMessage(&nMsg); DispatchMessage(&nMsg);//將訊息交給視窗處理函式來處理 } return 0; }
演示
阿飛
2021年9月4日