C++視窗最大化

在C++中,如果你使用Windows API來創建視窗,你可以通過調用SetWindowPos函式來最大化一個視窗。以下是一個簡單的例子,展示了如何最大化一個視窗:

#include <windows.h>

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message)
    {
    case WM_CREATE:
        // 當視窗創建時,最大化視窗
        ShowWindow(hWnd, SW_SHOWMAXIMIZED);
        break;
    case WM_CLOSE:
        // 當用戶嘗試關閉視窗時,銷毀視窗
        DestroyWindow(hWnd);
        break;
    default:
        return DefWindowProc(hWnd, message, wParam, lParam);
    }
    return 0;
}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    WNDCLASS wc = {};
    wc.lpfnWndProc = WndProc;
    wc.hInstance = hInstance;
    wc.lpszClassName = "MyWindowClass";
    RegisterClass(&wc);

    // 創建視窗
    HWND hWnd = CreateWindow(
        "MyWindowClass", // 視窗類名
        "My Window", // 視窗標題
        WS_OVERLAPPEDWINDOW, // 視窗樣式
        CW_USEDEFAULT, // 初始X坐標
        CW_USEDEFAULT, // 初始Y坐標
        CW_USEDEFAULT, // 初始寬度
        CW_USEDEFAULT, // 初始高度
        NULL, // 父視窗句柄
        NULL, // 選單句柄
        hInstance, // 程式實例
        NULL); // 附加數據

    ShowWindow(hWnd, nCmdShow); // 顯示視窗

    // 訊息循環
    MSG msg = {};
    while (GetMessage(&msg, NULL, 0, 0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }

    return (int)msg.wParam;
}

在這個例子中,我們定義了一個視窗過程WndProc,並在WM_CREATE訊息中調用ShowWindow函式來最大化視窗。在WM_CLOSE訊息中,我們銷毀了視窗。

請注意,這個例子使用了Windows API,你需要包含windows.h頭檔案。此外,你需要確保你有適當的許可權來最大化視窗,因為某些應用程式可能不允許用戶最大化它們。