奇怪的SetConsoleScreenBufferInfoEx行为

问题描述 投票:0回答:1

如果我创建一个C#控制台应用程序,它将控制台缓冲区/窗口宽度和高度(使用Console。* - 方法)设置为80x25(或任何其他特定大小),则控制台窗口没有滚动条。

当我使用GetConsoleScreenBufferInfoEx来读取consolebuffer-settings时,它会报告一个window.Right和window.Bottom为79x24。如果我写回读CONSOLE_SCREEN_BUFFER_INFO_EX,窗口将获得滚动条。

问题:是否有任何C#/ .NET框架方法干扰或是否为此标准行为?

我在互联网上看过C的examplecode,它总是在做窗口。右边的++和window.Bottom ++。

c# .net winapi pinvoke dllimport
1个回答
0
投票

对于第一个问题,我认为你得到滚动条,因为你的窗口实际上变小了。这是一个错误。

请参阅35901572并注意,以供参考,examples on PInvoke始终固定大小。

调用GetConsoleScreenBufferInfoEx后尝试添加几行:

GetConsoleScreenBufferInfoEx(handle, ref currentScreen);
++currentScreen.srWindowBottom;
++currentScreen.srWindowRight;
© www.soinside.com 2019 - 2024. All rights reserved.