我可以阻止程序用户调整控制台窗口的大小吗? (在C中)

时间:2017-11-17 19:34:45

标签: c windows console resize window

所以我正在搜索(很多)并且没有找到任何关于如何阻止用户调整程序控制台窗口大小的内容。我找到了语言C++C#的信息,但没有找到C的信息。我已经设法设置了控制台的大小,但是如果用户之后更改了它,那么我的程序看起来就不好了。我有什么办法可以完美地调整控制台的大小并保持这种状态吗?

2 个答案:

答案 0 :(得分:2)

好的,所以我设法通过组合代码来实现魔力。 首先,你需要一个 #define _WIN32_WINNT 0x0500
之后(订单很重要
#include <windows.h>
在这之后你需要在你的主要代码:
HWND consoleWindow = GetConsoleWindow(); SetWindowLong(consoleWindow, GWL_STYLE, GetWindowLong(consoleWindow, GWL_STYLE) & ~WS_MAXIMIZEBOX & ~WS_SIZEBOX);
谢谢你们的帮助!

答案 1 :(得分:0)

通过设置EVENT_CONSOLE_LAYOUT的事件挂钩以及SetWinEventHook来电WinEventProc callback来隐藏SetConsoleWindowInfo事件,以立即恢复所需的尺寸。

您也可以使用SetWindowScreenBufferSize将窗口缓冲区设置为可见窗口的精确尺寸,因为无法使可见窗口大于缓冲区大小。但这并不妨碍使窗户变小。