【发布时间】:2020-07-13 23:15:50
【问题描述】:
我正在尝试使用 Windows 控制台进行游戏开发,并且我已设法将屏幕缓冲区和窗口的大小调整为所需的大小。问题是用户可以按 Alt+Enter 强制全屏模式 - 我想避免这种情况,因为:
-
进入全屏模式会改变我精心设计的布局的屏幕缓冲区大小。
-
返回窗口模式会导致出现滚动条。
理想情况下,我想完全禁用全屏模式更改,作为一种折衷方案,我想检测模式更改,以便更新缓冲区大小变量/发生更改时删除滚动条。在 Win32 中通过WindowProc 很容易,但控制台似乎没有这个。
有什么建议吗?
【问题讨论】:
-
取this answer 并修改它以禁用其他窗口样式。然后在必要时对 HWND 的 wndproc 进行子类化,以拦截 ALT+ENTER 等键盘事件。
-
@selbie 控制台参考链接很方便,特别是该页面上的控制台 WinEvents 链接。有趣的是我以前没有遇到过。谢谢!
标签: c++ windows terminal console fullscreen