c++ - 单击 wxToggleButton 时不捕获鼠标
问题描述
我在 wxGridSizer 中有许多自定义 wxToggleButtons。我希望能够按住鼠标左键 + 移动鼠标以快速激活多个按钮(类似地在鼠标右键按下时停用它们)。
我已经在 wxEVT_ENTER_WINDOW、wxEVT_LEFT_DOWN 等上尝试了不同的绑定......根本问题是鼠标按下时不会触发 wxEVT_ENTER_WINDOW(也是 wxEVT_LEAVE_WINDOW),所以我假设第一个按钮以某种方式捕获了鼠标。明显的 wxWindow::ReleaseMouse() 不是答案,一些不同的机制在起作用。
我还快速查看了 wxMouseEventsManager 的子类化,但我无法让它与在 MouseDragBegin() 中返回 false 的计划一起工作。我不确定这是否是适当的方法。
如何在我的 wxToggleButton 子类中禁用此鼠标捕获行为?
解决方案
经过更多研究,我发现这不是 wxWidgets,而是 Windows 的错。
使用 Spy++ 和字符映射应用程序,我在小的“Unicode”文本控件中按下鼠标左键。然后在按住鼠标按钮的同时拖动它。
“选择”按钮根本没有收到任何消息。
因此,在某些情况下,一个窗口会阻止其他窗口的所有消息。
推荐阅读
- angular - 在辅助插座之间传递参数
- c# - 相当于 C# 中的#define number 4
- javascript - 如何通过单击动态侧栏中的子菜单打开新页面
- youtube-api - YouTube API:如何通过频道名称获取频道 ID?
- apache-curator - 疯狂的连续错误:[Socket error occurred: xxx: Network is unreachable] 当网络不可用时
- c# - 在 Windows 窗体 Picturebox C# 中插入屏幕截图
- bootstrapper - Wix Bootstrapper 不会打开 wpf ui
- amazon-web-services - AWS 私有子网中的 LDAP 访问
- three.js - Three.js 加载已经三角剖分的网格是否比使用四边形的网格更高效?
- python - 如果在一切运行前几天,为什么我们的 GAN 训练会产生错误?