1、手动敲代码,完整编写课堂上的所有代码;
2、窗口创建完成后,默认最大化显示;
3、窗口创建的时候添加提示框;
4、窗口被最大化的时候添加 MessageBox 提示框;
5、窗口关闭的时候添加确认提示框,取消则不关闭窗口;
#include <Windows.h> #include <tchar.h> static TCHAR szWindowClass[] = _T("WindowClass"); static TCHAR szTitle[] = _T("第一个窗口程序"); static TCHAR szWindowClass1[] = _T("AAA"); static TCHAR szTitle1[] = _T("提示框"); //第五步:窗口函数中处理窗口消息 LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { PAINTSTRUCT ps; HDC hdc; TCHAR greeting[] = _T("啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊"); switch (uMsg) { case WM_CREATE: //窗口创建的时候添加提示框; MessageBox(hWnd, _T("窗口创建的时候添加提示框"), _T("Tip"), MB_OK); break; case WM_SIZE: //窗口被最大化的时候添加 MessageBox 提示框; if (wParam == SIZE_MAXIMIZED) { MessageBox(hWnd, _T("窗口被最大化的时候添加 MessageBox 提示框"), _T("Tip"), MB_OK); } break; case WM_PAINT: hdc = BeginPaint(hWnd, &ps); TextOut(hdc, 5, 5, greeting, _tcslen(greeting)); EndPaint(hWnd, &ps); break; case WM_CLOSE: { //窗口关闭的时候添加确认提示框,取消则不关闭窗口; int iRet = MessageBox(hWnd, _T("要关闭窗口吗?"), _T("Tip"), MB_OKCANCEL); if (iRet == IDOK) return DefWindowProc(hWnd, uMsg, wParam, lParam); } break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hWnd, uMsg, wParam, lParam); break; } return 0; } int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, INT nCmdShow) { //第一步:注册窗口类,指定窗口类的名称与窗口回调函数 WNDCLASSEX wcex = { 0 }; wcex.cbSize = sizeof(WNDCLASSEX); wcex.lpfnWndProc = WindowProc; wcex.lpszClassName = szWindowClass; if (!RegisterClassEx(&wcex)) { MessageBox(NULL,_T("注册窗口类失败"),_T("Tip"), NULL); return 1; } //第二部:创建窗口,指定注册窗口类,窗口标题,窗口的大小 HWND hWnd = CreateWindow( szWindowClass, szTitle, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 500, 300, NULL, NULL, hInstance, NULL ); if (!hWnd) { MessageBox(NULL, _T("创建窗口失败!"), _T("Tip"), NULL); return 1; } //第三步:显示窗口 //ShowWindow(hWnd, SW_MAXIMIZE); //默认最大化 ShowWindow(hWnd, SW_SHOW); //第四步:开始消息循环 MSG msg = { 0 }; while (GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return (int)msg.wParam; }