Win32窗口程序的创建流程

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;
}

 

Win32窗口程序的创建流程

上一篇:windows 下 zookeeper服务相关操作


下一篇:WPF快速入门系列-命令