NO ACTIVATE窗口样式

ghe*_*het 2 c# c++ windows winapi

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

这是为了Windows.

谢谢!

Cod*_*ray 5

你尝试过WS_EX_NOACTIVATE扩展窗口样式吗?

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

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


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