NO ACTIVATE窗口样式

时间:2011-02-28 09:41:07

标签: c# c++ windows winapi

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

这是针对Windows的。

谢谢!

1 个答案:

答案 0 :(得分:5)

您是否尝试过WS_EX_NOACTIVATE extended window style

  

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

     

要激活窗口,请使用SetActiveWindowSetForegroundWindow功能。


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