Windows程序设计学习笔记(1):一个简单的windows程序
生活随笔
收集整理的這篇文章主要介紹了
Windows程序设计学习笔记(1):一个简单的windows程序
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
《Windows程序設計》(第五版)(美Charles Petzold著)
1 #include<windows.h> 2 3 LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM); 4 5 int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,PSTR szCmdline,int iCmdShow) 6 //第一個參數是實例句柄,在Windows程序中,句柄就是一個數值,程序里用它來標志某些東西 7 //第三個參數是用來運行程序的命令行 8 //第四個參數用來指明程序最初如何顯示:正常顯示、最大化到全屏、最小化到任務欄 9 { 10 static TCHAR szAppName[]=TEXT("HelloWin"); 11 HWND hwnd; //窗口句柄 12 MSG msg; //消息結構 13 WNDCLASS wndclass; //窗口類結構 14 15 wndclass.style=CS_HREDRAW | CS_VREDRAW; 16 wndclass.lpfnWndProc = WndProc; //將窗口類的過程設為WndProc函數 17 wndclass.cbClsExtra=0; 18 wndclass.cbWndExtra=0; //這兩行用于在類結構和Windows內部維護的窗口結構中預留額外的空間 19 wndclass.hInstance=hInstance; //應用程序的實例句柄 20 wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION); //為所有基于該窗口類的窗口設定一個圖標 21 wndclass.hCursor=LoadCursor(NULL,IDC_ARROW); //載入一個預定義的鼠標指針 22 wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH); //為這類窗口的客戶區指定背景顏色 23 wndclass.lpszMenuName=NULL; //指定窗口類的菜單 24 wndclass.lpszClassName=szAppName; //為窗口類指定一個名稱 25 26 if(!RegisterClass(&wndclass)) //RegisterClass(&wndclass)窗口類注冊 27 { 28 MessageBox(NULL,TEXT("This program requares Windows NT"),szAppName,MB_ICONERROR); 29 return 0; 30 } 31 32 hwnd=CreateWindow(szAppName, //創建窗口類 窗口類名稱 33 TEXT("The Hello Program"), //窗口標題 34 WS_OVERLAPPEDWINDOW, //風格 35 CW_USEDEFAULT, //初始x坐標 36 CW_USEDEFAULT, //初始y坐標 37 CW_USEDEFAULT, //初始x方向尺寸 38 CW_USEDEFAULT, //初始y方向尺寸 39 NULL, //父窗口句柄 40 NULL, //窗口菜單句柄 41 hInstance, //程序實例句柄 42 NULL); //創建參數 43 ShowWindow(hwnd,iCmdShow); //顯示窗口 44 UpdateWindow(hwnd); //重繪窗口 45 while(GetMessage(&msg,NULL,0,0))//消息循環,GetMessage函數用于從消息隊列中對消息進行檢索,此調用將一個指向名稱為msg的MSG結構變量的指針傳給Windows 46 { 47 Translate(&msg); //將msg結構返還給Windows以進行某些鍵盤消息的轉換 48 DispatchMessage(&msg); //將msg結構再次返回給Windows,接下來,Windows會將這條消息發送給合適的窗口過程來處理 49 } 50 return msg.wParam; 51 } 52 53 LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam) 54 { 55 HDC hdc; //設備環境句柄 56 PAINTSTRUCT ps; //繪制結構 57 RECT rect; //矩形結構 58 59 switch(message) //消息處理 60 { 61 case WM_VREATE: 62 return 0; 63 case WM_PAINT: //當窗口客戶區的部分或全部無效且必須更新時應用程序將收到此通知 64 hdc=BeginPaint(hwnd,&ps); //幾乎總是從BeginPaint開始 65 GetClientRect(hwnd,&rect); 66 DrawText(hdc,TEXT("Hello,Windows 10!"),-1,&rect,DT_SINGLELINE | DT_CENTER | DT_VCENTER); //繪制文本 67 EndPaint(hwnd,&ps); 68 case WM_DESTROY: //銷毀窗口 69 PostQuitMessage(0); 70 return 0; 71 } 72 return DefWindowProc(hwnd,message,wParam,lParam); //對所有窗口過程沒有處理的消息進行默認處理 73 }
?
轉載于:https://www.cnblogs.com/Toya/p/11193477.html
總結
以上是生活随笔為你收集整理的Windows程序设计学习笔记(1):一个简单的windows程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 输卵管堵塞艾灸
- 下一篇: 【模板】树状数组 2