【问题标题】:Direct mouse events from my window to other windows将鼠标事件从我的窗口定向到其他窗口
【发布时间】:2014-01-16 09:59:55
【问题描述】:

非常相似的问题here,但似乎没有答案。

我已经使用两个窗口实现了一个阴影窗口,一个具有阴影的父窗口,但主本机窗口是子窗口。唯一的问题是我的父窗口比子窗口大得多,并且正在使用透明度来做阴影。这使我的窗口即使在我单击阴影区域时也能处理鼠标事件。

我想要的是让我的窗口在我单击阴影(父)区域时失去焦点,类似于单击不属于我的应用程序的另一个窗口。在阴影大小发生变化的情况下,我还希望直接控制此点击区域的位置。

我怎样才能做到这一点?

提前谢谢你。

【问题讨论】:

  • 阴影窗口是否使用了 WS_EX_LAYERED?
  • @manuell 是的,先生,我做到了

标签: c++ winapi mouseevent gdi+


【解决方案1】:

在父窗口中,处理WM_MOUSEACTIVATE 消息并返回MA_NOACTIVATE 以防止单击父窗口激活它。

您还必须在子窗口中处理消息,这次返回MA_ACTIVATE

【讨论】:

  • 这会让鼠标事件重定向到阴影下的其他窗口吗?
  • 谢谢!我回家后会试试这个。
  • MA_NOACTIVATEANDEAT 会吞下点击并阻止其他东西获取它。
  • @JonathanPotter:它似乎不起作用。知道出了什么问题吗?我在 WM_CREATE 之后处理它,并在所有其他消息之上处理。 Here 是我的 wndProc 的要点,如果你不介意看的话。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-07
  • 2012-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多