为什么我的简单 C++ Windows.h 窗口如此滞后?

互联网 行业动态 更新时间:2024-06-13 00:19:06

jwe*_*rek 8

它很慢,因为每次您的窗口字段消息时您都在创建一个窗口

LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    switch (uMsg)
    {
    case WM_CLOSE:
        DestroyWindow(hWnd);
        break;
    case WM_DESTROY:
        PostQuitMessage(0);
        return 0;
        break;
    }
    
    ///////////// This should not be here .....
    textfield = CreateWindowW(L"STATIC", L"Text is here", 
        WS_VISIBLE | WS_CHILD | WS_BORDER, 20, 20, 300, 25, hWnd, NULL, NULL, NULL);
    /////////////

    return DefWindowProc(hWnd, uMsg, wParam, lParam);
}

您希望创建标签一次,而不是每次调用窗口过程。一个好地方是在WM_CREATE处理程序中,即

LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    switch (uMsg)
    {
    case WM_CREATE:
        textfield = CreateWindowW(L"STATIC", L"Text is here", WS_VISIBLE | WS_CHILD | WS_BORDER, 20, 20, 300, 25, hWnd, NULL, NULL, NULL);
        return 0;
    case WM_CLOSE:
        DestroyWindow(hWnd);
        break;
    case WM_DESTROY:
        PostQuitMessage(0);
        return 0;
        break;
    }

    return DefWindowProc(hWnd, uMsg, wParam, lParam);
}

更多推荐

窗口,简单,Windows

本文发布于:2023-04-20 20:34:10,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/hyzx/e48c924842f90ceaa307f9ba731e543d.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:窗口   简单   Windows

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!