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吗?
使用此样式创建的***窗口在用户单击时不会成为前台窗口。当用户最小化或关闭前台窗口时,系统不会将该窗口置于前台。
要激活窗口,请使用
SetActiveWindow
或SetForegroundWindow
函数。
否则,如果这不符合您的要求,您将需要处理 WM_MOUSEACTIVATE
message 并返回 MA_NOACTIVATE
。
【讨论】:
以上是关于NO ACTIVATE 窗口样式的主要内容,如果未能解决你的问题,请参考以下文章