C++ Windows 窗体程序入门 - 2.消息处理

本文介绍了C++ Windows窗体程序中消息处理的详细步骤,包括消息处理函数的创建、消息循环、获取和处理消息,以及如何处理窗口类的消息。通过讲解,帮助读者理解窗口消息的工作原理和操作方法。

〇、前言——

没错,我又回来啦,之前因为学业在小黑屋里关了一个学期,工作日与世隔绝+周末有一点想鸽,就拖了半年

欸~嘿~

好了,废话不多说,上正文:

一、复习——

我们现在学到:1、环境配置(windowsAPI这磨人的小妖精)

2、窗口类

3、创建窗口

没错,就只有这些,先把整合过的代码放一下

int __stdcall WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nCmdShow)
{
    // 注册窗口类
    WNDCLASSEXA Winc = { NULL };

    Winc.cbSize          = sizeof(Winc);
    Winc.style           = CS_OWNDC;
    Winc.lpfnWndProc     = MessageSetup;
    Winc.cbClsExtra      = 0;
    Winc.cbWndExtra      = 0;
    Winc.hInstance       = hInstance;
    Winc.hIcon           = nullptr;
    Winc.hCursor         = nullptr;
    Winc.hbrBackground   = nullptr;
    Winc.lpszMenuName    = nullptr;
    Winc.lpszClassName   = "wind2067 is handsome";

    RegisterClassExA(&Winc);

    // 创建窗口
    HWND hWnd = CreateWindowA(
        "wind2067 is handsome",
        "Subscribe!!!",
        WS_SYSMENU,
        CW_USEDEFAULT, CW_USEDEFAULT,
        1000, 618,    // 只显示标题不大好,我把大小调了一下
        nullptr, nullptr,
        hInstance,
        nullptr
    );

    // 显示窗口
    ShowWindow(hWnd, SW_SHOWDEFAULT);
}

其实上章所说:“就这样,点击编译,你就可以看到一个白白嫩嫩的窗口啦~~~”不大准确,不熟悉流程的各位同学门肯定内心数万只mmp飞过,因为:

Winc.lpfnWndProc = MessageSetup;

↑↑↑

这玩意还没搞定呢,所以~今天我们来讲——消息循环与处理

二、消息处理函数

窗口类需要的消息处理函数框架长这样:

typedef LRESULT (CALLBACK* WNDPROC)(HWND, UINT, WPARAM, LPARAM);

· 翻译

数据类型:LRESLUT(LongRESULT), 追根究底就是long (他们为什么老喜欢搞这种代称???)

额外:CALLBACK,回调(解释太长了,跳转到附注回调函数),定义为__stdcall(有两根_)

参数-HWND:窗口句柄

-UINT:(Unsigned INT),无符号整型

-WPARAM:(WORD PARAM[参数])WORD型的参数,WORD型即16位整型

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值