繁体   English   中英

SIGWINCH等效于Windows?

[英]SIGWINCH equivalent on Windows?

这很可能是另一个愚蠢的问题,但我似乎无法找到答案(或任何相关的问题),所以这里就是这样。

我有一个命令行程序,它使用Linux上的SIGWINCH来检测窗口大小的变化,我显然有一个用户在Windows上使用该程序。 问题是,程序使用SIGWINCH来检测窗口大小的变化,并且Windows上不支持此信号。 我已经尝试过谷歌搜索我能想到的每一个搜索词组合,但由于SIGWINCH与窗口大小的变化之间的关系,我很难找到任何有用的结果。 我正在寻找Windows等价物,或者最常用于检测Windows计算机上窗口大小变化的方法。

如何在Windows上检测窗口大小的变化?

由于我认为您不能将控制台窗口子类化(因此捕获WM_SIZE消息),您可能只需要轮询GetConsoleScreenBufferInfo

编辑:经过进一步调查(未测试!),如果没有使用ReadConsoleInput进行轮询,它也可能是可行的。 摘要:调用SetConsoleMode以打开窗口输入事件。 从另一个线程,等待控制台输入句柄使用WaitForSingleObject或类似函数发出信号。 读取所有挂起的控制台事件 窗口缓冲区大小事件的存在意味着调整了控制台窗口的大小。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM