【发布时间】:2010-12-08 15:41:28
【问题描述】:
我有一个用 C++ 编写的 Windows 控制台应用程序,并且想要隐藏/删除控制台窗口的完整标题栏,包括关闭、最小/最大控件等。我搜索了很多但没有发现任何有用的东西。
我使用 GetConsoleWindow 查询控制台 HWND 并尝试通过删除 WS_CAPTION 标志来使用 SetWindowLong 更改控制台窗口样式,但这似乎根本没有效果:
HWND hwnd = GetConsoleWindow();
LONG style = GetWindowLong(hwnd, GWL_STYLE);
style &= ~(WS_BORDER|WS_CAPTION|WS_THICKFRAME);
SetWindowLong(hwnd, GWL_STYLE, style);
SetWindowPos( hwnd, NULL, 0,0,0,0,
SWP_NOSIZE|SWP_NOMOVE|SWP_NOZORDER|SWP_NOACTIVATE
|SWP_FRAMECHANGED );
我也尝试过 GetSystemMenu/RemoveMenu 但这似乎只会禁用关闭按钮等控件。
【问题讨论】:
-
有趣的问题,为什么要隐藏标题栏?
-
我真的不知道。它只是通过显示与默认控制台不同的东西来使程序看起来“更好”,每个人都已经看过一千次了。