c++

c++弹窗如何实现最大化、最小化功能

小樊
213
2024-08-13 00:56:42
栏目: 编程语言

要在C++中实现弹窗的最大化和最小化功能,可以使用Windows API中的相关函数来实现。以下是一个简单的示例代码:

#include <windows.h>

// 弹窗的回调函数
LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    switch (uMsg)
    {
    case WM_CLOSE:
        DestroyWindow(hwnd);
        break;
    case WM_DESTROY:
        PostQuitMessage(0);
        break;
    case WM_SIZE:
        if (wParam == SIZE_MINIMIZED)
        {
            ShowWindow(hwnd, SW_MINIMIZE);
        }
        else if (wParam == SIZE_MAXIMIZED)
        {
            ShowWindow(hwnd, SW_MAXIMIZE);
        }
        else if (wParam == SIZE_RESTORED)
        {
            ShowWindow(hwnd, SW_RESTORE);
        }
        break;
    default:
        return DefWindowProc(hwnd, uMsg, wParam, lParam);
    }

    return 0;
}

int main()
{
    // 注册窗口类
    WNDCLASS wc = {};
    wc.lpfnWndProc = WindowProc;
    wc.hInstance = GetModuleHandle(NULL);
    wc.lpszClassName = L"WindowClass";
    RegisterClass(&wc);

    // 创建窗口
    HWND hwnd = CreateWindowEx(
        0,
        L"WindowClass",
        L"Window Title",
        WS_OVERLAPPEDWINDOW,
        CW_USEDEFAULT, CW_USEDEFAULT, 800, 600,
        NULL, NULL, GetModuleHandle(NULL), NULL
    );

    ShowWindow(hwnd, SW_SHOWNORMAL);

    // 消息循环
    MSG msg;
    while (GetMessage(&msg, NULL, 0, 0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }

    return 0;
}

在上面的示例代码中,我们创建了一个简单的窗口并注册了一个回调函数 WindowProc 来处理窗口消息。在回调函数中,我们捕获了窗口的最大化和最小化等消息,并实现了相应的功能。通过调用 ShowWindow 函数可以实现最大化、最小化和还原窗口的操作。

0
看了该问题的人还看了