日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

第一个 Win32 窗口程序

發布時間:2023/12/10 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第一个 Win32 窗口程序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

第一個 Win32 窗口程序

程序骨架 int WinMain(){ // 設計窗口外觀及交互響應,注冊,申請專利RegisterClass(...) ;// 生產窗口 CreateWindow(...); // 展示窗口 ShowWindow(...); // 粉刷窗口 UpdateWindow(...);// 進入消息循環 while (GetMessage(...));{ // 消息轉換 TranslateMessage(...); // 消息分發 DispatchMessage(...); }

可以直接運行

#include <stdio.h> #include <windows.h>//設計一個窗口類,填入參數 //注冊窗口類 //創建窗口 //顯示以及更新窗口 //循環等待消息 LPCTSTR clsName = "My"; LPCTSTR msgName = "歡迎學習";//回調函數 LRESULT CALLBACK MyWinProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);INT WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,PSTR lpCmdLine, INT nCmdShow) { // typedef struct tagWNDCLASSA { // UINT style; // WNDPROC lpfnWndProc; // int cbClsExtra; // int cbWndExtra; // HINSTANCE hInstance; // HICON hIcon; // HCURSOR hCursor; // HBRUSH hbrBackground; // LPCSTR lpszMenuName; // LPCSTR lpszClassName; // } WNDCLASSA, * PWNDCLASSA, * NPWNDCLASSA, * LPWNDCLASSA;//定義一個窗口對象WNDCLASS wndcls{};wndcls.cbClsExtra = NULL;wndcls.cbWndExtra = NULL;wndcls.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);wndcls.hCursor = LoadCursor(NULL, IDC_ARROW);wndcls.hIcon = LoadIcon(NULL, IDI_APPLICATION);wndcls.hInstance = hInstance;//定義交互響應wndcls.lpfnWndProc = MyWinProc;//定義窗口代號wndcls.lpszClassName = clsName;wndcls.lpszMenuName = NULL;wndcls.style = CS_HREDRAW | CS_VREDRAW;//注冊窗口類RegisterClass(&wndcls);//創建窗口HWND hwnd;hwnd = CreateWindow(clsName, msgName, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL);//顯示和刷新窗口ShowWindow(hwnd, SW_SHOWNORMAL);UpdateWindow(hwnd);//消息循環MSG msg;while (GetMessage(&msg,NULL,NULL,NULL)){TranslateMessage(&msg);DispatchMessage(&msg);}return msg.wParam;} LRESULT __stdcall MyWinProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {//uMsg消息類型int ret;HDC hdc;switch (uMsg){case WM_CHAR:char szChar[20];sprintf_s(szChar, "您剛才按下了:%c", wParam);MessageBox(hwnd, szChar, "char", NULL);break;case WM_LBUTTONDOWN:MessageBox(hwnd,"檢測鼠標左鍵按下","msg",NULL);break;case WM_PAINT:PAINTSTRUCT ps;hdc = BeginPaint(hwnd, &ps);TextOut(hdc, 0, 0, "www.baidu.com", strlen("www.baidu.com"));EndPaint(hwnd, &ps);MessageBox(hwnd, "重新繪制", "msg", NULL);break;case WM_CLOSE:ret = MessageBox(hwnd, "是否真要退出!", "msg", MB_YESNO);if(ret == IDYES){DestroyWindow(hwnd);}break;case WM_DESTROY:PostQuitMessage(0);break;default:return DefWindowProc(hwnd,uMsg,wParam,lParam);}return 0; }

總結

以上是生活随笔為你收集整理的第一个 Win32 窗口程序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。