首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ShowWindowAsync不激活hidden+minimized窗口吗?

ShowWindowAsync不激活hidden+minimized窗口吗?
EN

Stack Overflow用户
提问于 2011-09-26 22:51:42
回答 2查看 2.3K关注 0票数 1

给定的外部窗口(不属于当前进程)窗口(hWnd)首先最小化,然后隐藏:

代码语言:javascript
复制
ShowWindowAsync(hWnd, SW_MINIMIZE);
// wait loop inserted here
ShowWindowAsync(hWnd, SW_HIDE);

以下调用正确地将其还原到未最小化(还原)状态:

代码语言:javascript
复制
ShowWindow(hWnd, SW_RESTORE);

然而,这一呼吁并没有:

代码语言:javascript
复制
ShowWindowAsync(hWnd, SW_RESTORE);

在使用ShowWindowAsync()的第二个实例中,窗口是不最小化的,不再隐藏,但它没有被激活(保留在其他现有窗口后面)。相反,第一个ShowWindow()调用将正确地激活窗口。

这是预期的行为吗?如何在不依赖同步(阻塞)的ShowWindow()**,(阻塞)的情况下恢复窗口(到前台)?**(示例中的等待循环可以有超时,而ShowWindow()不允许指定超时)。

(WinXP SP3)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-27 02:11:10

下面是使用的解决方案:

代码语言:javascript
复制
ShowWindowAsync(hWnd, SW_SHOW);
// wait loop inserted here
ShowWindowAsync(hWnd, SW_RESTORE);

这实质上是用于隐藏窗口的片段的反转:

代码语言:javascript
复制
ShowWindowAsync(hWnd, SW_MINIMIZE);
// wait loop inserted here
ShowWindowAsync(hWnd, SW_HIDE);
票数 1
EN

Stack Overflow用户

发布于 2011-09-26 23:21:05

ShowWindowAsync将显示窗口事件发布到给定窗口的消息队列中。特别是,窗口是由它的线程而不是您的线程显示的。不同的是,您的线程是前台线程,因此可以激活另一个窗口,这是它自己做不到的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7562280

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档