1. 程式人生 > 其它 >win32第一個windows視窗建立過程

win32第一個windows視窗建立過程

  • 視窗建立過程

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)
{
    return
DefWindowProc(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日