第一个 Win32 窗口程序
生活随笔
收集整理的這篇文章主要介紹了
第一个 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 窗口程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 盘点计算机世界那些经典谣言
- 下一篇: 程序员幽默:当代程序员的主要矛盾是什么?