NIM_PC_Demo icon indicating copy to clipboard operation
NIM_PC_Demo copied to clipboard

控件的AttachAllEvents 捕获不到kEventSystemKey ,比如捕获不到 ALT按键动作

Open cloud14k opened this issue 10 months ago • 1 comments

我在一个label中使用lb_show_hide_board_= (ui::Label*)FindControl(L"show_hide_board"); lb_show_hide_board_->AttachAllEvents(nbase::Bind(&KbShutcutsForm::OnLbShowHideBoardNotify, this, std::placeholders::_1)); bool KbShutcutsForm::OnLbShowHideBoardNotify(ui::EventArgs* msg) { if (msg->Type == kEventSystemKey) { ui::EventArgs* m = msg;
} } 按alt进入不到这个kEventSystemKey 过程,请帮忙解答一下,不胜感激。

cloud14k avatar Apr 25 '24 10:04 cloud14k

All events 事件在统一的 Control 基类中处理,这部分代码也是完全开放的,可尝试在派发 AllEvent 事件位置下断点排查系统回调上来的消息,参考这里代码:https://github.com/netease-kit/NIM_PC_Demo/blob/master/tool_kits/duilib/Core/Control.cpp#L740-L742

另外除了基于源码调试外,我个人一些历史经验可以参考:

  • 该控件事件是否可能被其他上层控件捕获
  • 该控件事件是否可能被外层其他控件捕获

nmgwddj avatar Apr 25 '24 10:04 nmgwddj