【问题标题】:Win32 Console Disable System Menu ButtonsWin32 控制台禁用系统菜单按钮
【发布时间】:2014-02-02 07:50:43
【问题描述】:

我想禁用/灰色控制台窗口上的系统菜单按钮,尤其是最小化按钮。我已经尝试过another thread 中提到的功能,但是即使在使用它们之后,控制台窗口仍然没有灰色的最小化按钮。我还研究了 DeleteMenu() 函数,但它似乎没有灰色按钮的选项。

这是测试代码:

#include <Windows.h>
using namespace std;


int main()
{
    //SetConsoleTitle(L"CPU Information");

    HWND consoleWindow = GetConsoleWindow();
    HMENU hMenu = GetSystemMenu(consoleWindow, FALSE);

    EnableMenuItem(hMenu, SC_MINIMIZE, MF_BYCOMMAND | MF_GRAYED);
    DrawMenuBar(consoleWindow);
    return 0;
}

【问题讨论】:

    标签: c++ winapi


    【解决方案1】:

    GetWindowLong + SetWindowLong FTW!

    int main(int argc, _TCHAR* argv[])
    {
        HWND consoleWindow  = GetConsoleWindow();
        LONG style = GetWindowLong(consoleWindow , GWL_STYLE);
        style = style & ~(WS_MINIMIZEBOX);
        SetWindowLong(consoleWindow, GWL_STYLE, style);
    
        return 0;
    }
    

    这将灰显并禁用窗口右上角的最小化框以及系统菜单中的“最小化”选项。

    【讨论】:

      猜你喜欢
      • 2010-12-20
      • 1970-01-01
      • 2016-01-19
      • 2015-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多