2011-02-28 83 views
2

我需要一个窗口,当我点击它时不会激活,但应该在别处反应正常。正常情况下,我的意思是,如果它上面有一个按钮,我点击它应该执行点击按钮并调用点击功能(或事件处理或以往)。所以它应该是一个普通的窗口,除非它在与它进行交互时不会被激活。 我知道你可以用消息过滤器或钩子做到这一点,但有没有自动执行此操作的窗口样式?没有激活窗口样式

这是针对windows的。

谢谢!

+0

我会告诉你一些示例代码,但我不确定你是否试图在C++或C#中执行此操作。哪一个是你的目标语言? – 2011-02-28 09:51:17

+0

我可以在c/C++中完成它,C#它不需要 – ghet 2011-02-28 09:58:43

+0

是的,你可以用任何语言来完成它。你是说你不在乎你的程序是用哪个编写的?你知道如何设置扩展窗口样式并处理Windows消息吗? – 2011-02-28 10:02:13

回答

5

您是否试过WS_EX_NOACTIVATE extended window style

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

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


否则,如果你想要的东西,不这样做,你将需要处理WM_MOUSEACTIVATE message并返回MA_NOACTIVATE