學習目的 熟悉開發工具Visual C++ 6.0和MSDN 2001的使用. 應用Windows API函數, 手工編寫具有最基本構成的Windows窗口應用程序(包含WinMain入口函數, 消息循環, 窗口函數), 並調試成功. 1.熟悉開發工具 熟悉開發工具visual studio的使用:
在visual studio中新建win32空項目
2.熟悉MSDN幫助的使用 練習使用MSDN查詢windows相關函數信息
3. 應用Windows API函數, 手工編寫具有最基本構成的Windows窗口應用程序(包含WinMain入口函數, 消息循環, 窗口函數) 程序代碼如下: #include <windows.h> #include<tchar.h>
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); //窗口函數說明
//------------ 初始化窗口類---------------- int WINAPI WinMain(HINSTANCE hInstance, //WinMain函數說明 HINSTANCE hPrevInst, LPSTR lpszCmdLine, int nCmdShow) { HWND hwnd; MSG Msg; WNDCLASS wndclass; TCHAR lpszClassName[] = _T("窗口"); //窗口類名 TCHAR lpszTitle[] = _T("My_Windows"); //窗口標題名
//窗口類的定義 wndclass.style = 0; //窗口類型為缺省類型 wndclass.lpfnWndProc = WndProc; //窗口處理函數為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); //調用PostQuitMessage發出WM_QUIT消息 default: //缺省時采用系統消息缺省處理函數 return DefWindowProc(hwnd, message, wParam, lParam); } return (0); } 編譯並調試程序,
Windows窗口應用程序運行結果:
通過本次學習,熟悉了開發工具Visual C++ 6.0和MSDN 2001的使用. 通過應用Windows API函數, 手工編寫Windows窗口應用程序了解了windows窗口應用最基本的構成:包含WinMain入口函數, 消息循環, 窗口函數…… |