【发布时间】:2019-11-02 07:03:45
【问题描述】:
我们在多个地方使用 CTreeCtrl (TreeView) 并接受双击以打开与双击节点相关的对话框。
打开的对话框在打开后失去焦点,因为树视图似乎在双击处理结束时强制成为焦点。
我们的场景:
- 用户双击一个节点
- 树视图获得焦点并选择其树中的项目
- 包含窗口的树视图接收树视图的 NM_DBLCLK 通知,并通过在我们的 MDI 环境中打开对话框或 MDI 子窗口来对双击做出反应
- 打开的对话框/MDI 子窗口在打开后获得焦点
- 树视图再次获得焦点
即使我们在 (3)(通知处理程序)中使用返回非零值的结果字段来阻止默认处理的其余部分,(5)也会发生并且树视图再次获得焦点,再次选择项目。
我非常感谢有关解决此问题的方法的任何提示,因为刚刚打开的对话框或窗口在打开后立即失去焦点真的很烦人。
提前致谢!
【问题讨论】:
-
您如何“拦截”双击:覆盖
OnNotify或覆盖OnLButtonDblClk?我将后者用于类似的操作(打开一个依赖于节点的对话框),它工作正常。