簡體   English   中英

如何在 Win32 C++ 程序中以編程方式最大化頂級 window?

[英]How do I programmatically maximize a top-level window in a Win32 C++ program?

我試圖在我的 Win32 C++ 程序中以編程方式最大化我的頂級 window 。 我在處理WM_CREATE消息的代碼中使用了類似於以下的代碼:

        WINDOWPLACEMENT windowPlacement = {};
        windowPlacement.length = sizeof(WINDOWPLACEMENT);
        windowPlacement.rcNormalPosition = newWindowRect;
        windowPlacement.showCmd = SW_NORMAL;

        if (maximized == TRUE)
        {
            windowPlacement.showCmd = SW_SHOWMAXIMIZED;
        }
        SetWindowPlacement(hwnd, &windowPlacement);

當此代碼執行時,如果maximizedTRUE ,則 window 設置為最大化 window 的大小,但最大化/恢復按鈕仍然是最大化按鈕,而不是恢復按鈕。

窗口截圖

我嘗試使用ShowWindow() function 得到相同的結果。

事實證明WM_CREATE消息處理程序是執行此操作的錯誤位置。 在調用CreateWindow()之后但在調用ShowWindow()之前將代碼移出 window 過程並進入wWinMain() function 后,它按預期工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM