使用API,手工生成 Windows應用程式全過程(圖解+文字說明)
阿新 • • 發佈:2019-02-05
- 首先找到VC++6.0應用程式圖示,雙機開啟VC++6.0。
- 在VC選單欄,選擇“File"選單。
- 選擇“NEW“選單項,開啟”NEW“對話方塊。
- 如上對話方塊所示,選擇”Project“欄,選中"Win32 Application",在”Project Name“中輸入工程名,選擇好儲存地址。然後單擊”OK“。
- 彈出如上對話方塊,選擇”An empty project“,然後單擊”Finish“。
- 此時進入編輯介面。選擇"FileView"檢視,展開”Source Files“資料夾,選中”windows.cpp“.(此時是你定義的,工程名.cpp),點選開啟此cpp檔案。
- 將檔案中的原有內容刪除。插入如下程式碼。
// windows.cpp : Defines the entry point for the application. // #include "stdafx.h" #include <windows.h> #include <stdio.h> LRESULT CALLBACK WinSunProc( HWND hwnd, // handle to window UINT uMsg, // message identifier WPARAM wParam, // first message parameter LPARAM lParam // second message parameter ); int WINAPI WinMain( HINSTANCE hInstance, // handle to current instance HINSTANCE hPrevInstance, // handle to previous instance LPSTR lpCmdLine, // command line int nCmdShow // show state ) { WNDCLASS wndcls; wndcls.cbClsExtra=0; wndcls.cbWndExtra=0; wndcls.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH); wndcls.hCursor=LoadCursor(NULL,IDC_CROSS); wndcls.hIcon=LoadIcon(NULL,IDI_ERROR); wndcls.hInstance=hInstance; wndcls.lpfnWndProc=WinSunProc; wndcls.lpszClassName="Computer2016"; wndcls.lpszMenuName=NULL; wndcls.style=CS_HREDRAW | CS_VREDRAW; RegisterClass(&wndcls); //註冊視窗類 HWND hwnd; hwnd=CreateWindow("Computer2016","四川理工學院-計算機學院",WS_OVERLAPPEDWINDOW,0,0,600,400,NULL,NULL,hInstance,NULL); //建立視窗 ShowWindow(hwnd,SW_SHOWNORMAL); //顯示視窗 UpdateWindow(hwnd); //更新視窗 MSG msg; while(GetMessage(&msg,NULL,0,0)) //訊息迴圈 { TranslateMessage(&msg); DispatchMessage(&msg); } return 0; } LRESULT CALLBACK WinSunProc( HWND hwnd, // handle to window UINT uMsg, // message identifier WPARAM wParam, // first message parameter LPARAM lParam // second message parameter ) { switch(uMsg) { case WM_CHAR: char szChar[20]; sprintf(szChar,"char is %d",wParam); MessageBox(hwnd,szChar,"weixin",0); break; case WM_LBUTTONDOWN: MessageBeep(10); //提示音。 MessageBox(hwnd,"你按下了滑鼠!","提示",0); HDC hdc; hdc=GetDC(hwnd); TextOut(hdc,0,50,"Widows程式設計實驗",strlen("Widows程式設計實驗")); ReleaseDC(hwnd,hdc); break; case WM_PAINT: HDC hDC; PAINTSTRUCT ps; hDC=BeginPaint(hwnd,&ps); TextOut(hDC,0,0," 程式設計實驗",strlen("程式設計實驗")+1); EndPaint(hwnd,&ps); break; case WM_CLOSE: if(IDYES==MessageBox(hwnd,"是否真的結束?","提示",MB_YESNO)) { DestroyWindow(hwnd); } break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hwnd,uMsg,wParam,lParam); } return 0; }
- 點選工具欄的編譯執行按鈕。
- 執行結果如下:
- 此程式添加了滑鼠響應函式和視窗銷燬響應函式和視窗重繪函式,所以點選滑鼠左鍵或關閉視窗或移動視窗時,程式會對於做出相應的操作。