Jef*_*ing 6 windows signals command-line-interface
这很可能是另一个愚蠢的问题,但我似乎找不到答案(或任何与此相关的答案),所以就这样吧。
我有一个命令行程序,它在 Linux 上使用 SIGWINCH 来检测窗口大小的变化,而且我显然有一个在 Windows 上使用该程序的用户。问题是该程序使用 SIGWINCH 来检测窗口大小的变化,而此信号在 Windows 上不受支持。我已经尝试使用谷歌搜索我能想到的每个搜索词组合,但由于 SIGWINCH 和窗口大小变化之间的关系,我无法找到任何有用的结果。我正在寻找 Windows 等效项,或者最常用于检测 Windows 计算机上窗口大小变化的方法。
如何检测 Windows 上窗口大小的变化?
由于我认为您无法子类化控制台窗口(从而捕获WM_SIZE消息),因此您可能只需要 poll GetConsoleScreenBufferInfo。
编辑:经过进一步调查(未经测试!),不使用 轮询也可能是可行的ReadConsoleInput。摘要:调用SetConsoleMode开启窗口输入事件。从不同的线程,等待控制台输入句柄WaitForSingleObject使用或类似的函数发出信号。读取所有待处理的控制台事件;窗口缓冲区大小事件的存在意味着某些东西调整了控制台窗口的大小。
| 归档时间: |
|
| 查看次数: |
2051 次 |
| 最近记录: |