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

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

这是用于窗户的。

谢谢!

【问题讨论】:

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

标签: c# c++ windows winapi


【解决方案1】:

你试过WS_EX_NOACTIVATE extended window style吗?

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

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


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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多