首页 > 编程语言 >第一个win32程序

第一个win32程序

时间:2022-12-21 16:46:23浏览次数:46  
标签:窗口 第一个 hwnd 程序 win32 wndClass return message NULL

#include <Windows.h>
//自定义过程函数
//参数 HWND:窗口的句柄  message:消息ID 附加消息信息  附加消息信息
long CALLBACK MyWndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam) {
    switch (message)
    {
    case WM_DESTROY:
        PostQuitMessage(0);
        return 0;
    default:
        return DefWindowProcW(hwnd,message,wParam,lParam);
    }
    return DefWindowProcW(hwnd, message, wParam, lParam);
}
int WINAPI WinMain(_In_ HINSTANCE hInstance,
    _In_opt_ HINSTANCE hPrevInstance,
    _In_ LPSTR lpCmdLine,
    _In_ int nShowCmd) {
    //声明窗口类
    WNDCLASS wndClass;
    //CS_NOCLOSE 禁止系统菜单的关闭选项
    wndClass.style = CS_HREDRAW|CS_VREDRAW;//窗口类样式
    wndClass.lpfnWndProc = MyWndProc;//窗口过程函数
    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 = L"caoruipeng";//窗口类名称
    //注册窗口类 
    if (!RegisterClass(&wndClass)) {
        MessageBox(NULL, L"无效的窗口类", L"错误提示", MB_OK);
        return FALSE;
    }

    //创建窗口
    HWND hwnd = CreateWindow(L"caoruipeng",//窗口类名称  注册窗口类的名称
        L"第一个窗口程序",//窗口标题
        WS_OVERLAPPEDWINDOW,//窗口样式
        CW_USEDEFAULT,//窗口位置x坐标
        CW_USEDEFAULT,//窗口位置y坐标
        CW_USEDEFAULT,//窗口宽度
        CW_USEDEFAULT,//窗口高度
        NULL,//此时窗口无父窗口
        NULL,//此时窗口无子菜单
        hInstance,//创建窗口的应用程序句柄
        NULL
    );

    //展示窗口
    ShowWindow(hwnd, nShowCmd);

    //绘制用户区域
    UpdateWindow(hwnd);

    MSG msg;
    //如果检索WM_QUIT消息 返回0,其他返回非0  返回0的时候,会跳出循环,结束程序
    while (GetMessage(&msg,NULL,0,0))
    {
        TranslateMessage(&msg);//翻译消息
        //将消息分发给窗口过程函数  返回窗口过程函数返回的值 通常忽略该值
        DispatchMessage(&msg);
    }
    return msg.wParam;
}

 

标签:窗口,第一个,hwnd,程序,win32,wndClass,return,message,NULL
From: https://www.cnblogs.com/caoruipeng/p/16996564.html

相关文章