【发布时间】:2012-10-11 06:01:57
【问题描述】:
我创建了一个无边框(和无滚动框)控制台应用程序,但我发现如果用户有一个触摸板并尝试用它滚动控制台,他就可以这样做。 (显然,不能用普通鼠标完成。)
我想禁用此功能。
首先我想为我的控制台创建某种消息处理系统,就像在 Win32 GUI 编程中一样,但这似乎是不必要的困难。
我也考虑过更改缓冲区大小,但我不知道该怎么做(我查看了 SetConsoleScreenBufferSize 但无法用它做任何有用的事情)。
有什么建议吗?
【问题讨论】:
-
改变缓冲区大小就可以了
-
您可能会遇到这种情况:指定的尺寸也不能小于系统允许的最小尺寸。此最小值取决于控制台的当前字体大小(由用户选择)以及 GetSystemMetrics 函数返回的 SM_CXMIN 和 SM_CYMIN 值。您很可能必须将它们设置为较低的值才能能够将缓冲区大小设置为窗口大小(意味着无处可滚动)。
-
好吧,我使用 GetSystemMetrics() 计算出 SM_CXMIN 和 SM_CYMIN 然后使用设置缓冲区大小SetConsoleScreenBufferSize(hWnd, bufferSize),其中 bufferSize 是 COORD bufferSize = {97, 28} //GetSystemMetrics() 中的值 但没有任何变化.有什么帮助吗?
-
如果你输出 1-30 的数字,那么 1 和 2 会从顶部消失吗?
-
我能看到的最后一个数字是 6。
标签: c++ visual-studio winapi console cmd