MOOC清華《VC++面向物件與視覺化程式設計》第1章:空白視窗的建立(空專案)
阿新 • • 發佈:2019-01-24
#include <Windows.h> //包含應用程式中所需的資料型別和資料結構的定義 LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM); //視窗函式說明 //--------------------- 以下初始化視窗類 ----------------------- int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInst,LPSTR lpszCmdLine,int nCmdShow) { HWND hwnd; MSG Msg; WNDCLASS wndclass; char lpszClassName[] = "視窗"; //視窗類名 char lpszTitle[] = "My_Windows"; //視窗標題名 //視窗類的定義 wndclass.style = 0; //視窗型別為預設型別 wndclass.lpfnWndProc = WndProc; //定義視窗處理函式 wndclass.cbClsExtra = 0; //視窗類無擴充套件 wndclass.cbWndExtra = 0; //視窗例項無擴充套件 wndclass.hInstance = hInstance; //當前例項控制代碼 wndclass.hIcon = LoadIcon(NULL,IDI_APPLICATION); //視窗的最小化圖示為預設圖示 wndclass.hCursor = LoadCursor(NULL,IDC_ARROW); //視窗採用箭頭游標 wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); //視窗背景為白色 wndclass.lpszMenuName = NULL; //視窗中無選單 wndclass.lpszClassName = lpszClassName; //視窗類名為“視窗” //--------------------- 以下進行視窗類的註冊 --------------------- if(!RegisterClass(&wndclass)) //如果註冊失敗則發出警告 { MessageBeep(0); return FALSE; } //--------------------- 建立視窗 ----------------------- hwnd = CreateWindow ( lpszClassName, //視窗類名 lpszTitle, //視窗例項的標題名 WS_OVERLAPPEDWINDOW, //視窗的風格 CW_USEDEFAULT, CW_USEDEFAULT, //視窗左上角座標為預設值 CW_USEDEFAULT, CW_USEDEFAULT, //視窗的高和寬為預設值 NULL, //此視窗無父視窗 NULL, //此視窗無主選單 hInstance, //建立此視窗的應用程式的當前控制代碼 NULL //不使用該值 ); //------------------- 顯示視窗 ------------------- ShowWindow(hwnd, nCmdShow); //------------------- 繪製使用者區 ------------------- UpdateWindow(hwnd); //------------------- 訊息迴圈 -------------------- while(GetMessage(&Msg,NULL,0,0)) { TranslateMessage(&Msg); DispatchMessage(&Msg); } return Msg.wParam; //訊息迴圈結束即程式終止時將資訊返回系統 } //視窗函式 LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { switch(message) { case WM_DESTROY: PostQuitMessage(0); default: //預設時採用系統訊息預設處理函式 return DefWindowProc(hwnd,message,wParam,lParam); } return (0); }