溫馨提示×

c++彈窗如何實(shí)現(xiàn)最大化、最小化功能

c++
小樊
115
2024-08-13 00:56:42
欄目: 編程語言

要在C++中實(shí)現(xiàn)彈窗的最大化和最小化功能,可以使用Windows API中的相關(guān)函數(shù)來實(shí)現(xiàn)。以下是一個簡單的示例代碼:

#include <windows.h>

// 彈窗的回調(diào)函數(shù)
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);

    // 創(chuàng)建窗口
    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);

    // 消息循環(huán)
    MSG msg;
    while (GetMessage(&msg, NULL, 0, 0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }

    return 0;
}

在上面的示例代碼中,我們創(chuàng)建了一個簡單的窗口并注冊了一個回調(diào)函數(shù) WindowProc 來處理窗口消息。在回調(diào)函數(shù)中,我們捕獲了窗口的最大化和最小化等消息,并實(shí)現(xiàn)了相應(yīng)的功能。通過調(diào)用 ShowWindow 函數(shù)可以實(shí)現(xiàn)最大化、最小化和還原窗口的操作。

0