这可能是另一个愚蠢的问题,但我似乎无法find答案(或任何事),所以在这里。
我有一个命令行程序,使用Linux上的SIGWINCH来检测窗口大小的变化,我显然有一个用户在Windows上使用该程序。 问题是程序使用SIGWINCH来检测窗口大小的变化,而这个信号在Windows上是不支持的。 我已经尝试过search词的每个组合,我可以想到,但由于SIGWINCH和窗口大小的变化之间的关系,我很难find任何有用的结果。 我正在寻找一个Windows等价物,或者是最经常用来检测Windows计算机窗口大小变化的方法。
如何在Windows上检测窗口大小的变化?
因为我不认为你可以子类化控制台窗口(并因此捕获WM_SIZE
消息),你可能只需要轮询GetConsoleScreenBufferInfo
。
编辑:进一步调查(未测试!),它也可能没有使用ReadConsoleInput
轮询可行。 摘要:调用SetConsoleMode
打开窗口输入事件。 从一个不同的线程,等待控制台输入句柄变成使用WaitForSingleObject
或类似的函数发送信号。 阅读所有挂起的控制台事件 窗口缓冲区大小事件的存在意味着您的控制台窗口的大小被调整。