NO ACTIVATE 窗口样式

Posted

技术标签:

【中文标题】NO ACTIVATE 窗口样式【英文标题】:NO ACTIVATE window style 【发布时间】:2011-02-28 09:41:07 【问题描述】:

我需要一个窗口,当我点击它时它不会激活,但在其他地方应该反应正常。正常情况下,我的意思是如果上面有一个按钮并且我单击该按钮,它应该执行单击并调用单击函数(或事件句柄或其他什么)。所以它应该是一个普通的窗口,除了当你与它交互时它不应该被激活。 我知道你可以使用消息过滤器或钩子来做到这一点,但有没有任何窗口样式可以自动做到这一点?

这是用于窗户的。

谢谢!

【问题讨论】:

我会向您展示一些示例代码,但我不确定您是否尝试在 C++ 或 C# 中执行此操作。你的目标语言是什么? 我可以在 c / C++ 中做到,C# 不重要 是的,您可以使用任何语言进行操作。你是说你不在乎你的程序是用哪个写的?你知道如何设置扩展窗口样式和处理 Windows 消息吗? 我刚刚尝试过 WS_EX_NOACTIVATE,它不会按预期激活窗口,但也不会执行单击按钮和其他内容。我会尝试 WM_MOUSEACTIVATE 消息并返回一些反馈。谢谢! 【参考方案1】:

你试过WS_EX_NOACTIVATE extended window style吗?

使用此样式创建的***窗口在用户单击时不会成为前台窗口。当用户最小化或关闭前台窗口时,系统不会将该窗口置于前台。

要激活窗口,请使用SetActiveWindowSetForegroundWindow 函数。

否则,如果这不符合您的要求,您将需要处理 WM_MOUSEACTIVATE message 并返回 MA_NOACTIVATE

【讨论】:

以上是关于NO ACTIVATE 窗口样式的主要内容,如果未能解决你的问题,请参考以下文章

Outlook Inspector Activate不会带来前景

WPF 让窗口激活作为前台最上层窗口的方法

Window.Show() 不显示窗口

WPF 让窗口激活作为前台最上层窗口的方法

activity 窗口样式

webstorm激活破解方法