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

〇、前言——

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

C++ Windows 窗体程序入门 - 2.消息处理_第1张图片

欸~嘿~

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

一、复习——

我们现在学到: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[

你可能感兴趣的:(#,Windows窗体入门,windows,c++,开发语言)