SDI程序,左边是像资源管理器一样的分割窗口CLeftView继承自CView。
右边是SDI产生的View,里面有一个CListCtrl。
由于我左边有几个面板,所以我在里面放了几个CExplorerDialog,CHistoryDialog等都继承自CDialog。
其中CExplorerDialog里有一个CTreeCtrl。
现在的问题是我在CExplorerDialog里处理
ON_NOTIFY(NM_RCLICK, IDC_TREE_VIEW, OnRClickTreeView)
ON_NOTIFY(TVN_SELCHANGING, IDC_TREE_VIEW, OnSelchangingTreeView)
ON_NOTIFY(TVN_ITEMEXPANDING, IDC_TREE_VIEW, OnItemExpandingTreeView)
只有NM_RCLICK有响应,其他的都没反应,为什么?
我直接把CTreeCtrl放在CLeftView是可以的,先放在CExplorerDialog,再把CExplorerDialog放在CLeftView里就不行了。另外我建了一个基于对话框的程序,放一个CTreeCtrl上去也是可以响应的。
难道CDialog为child窗口的时候就不能响应控件通知消息?

解决方案 »

  1.   

    CDialog为子窗口?WS_EX_CONTROLPARENT?ON_NOTIFY_REFELECT?
      

  2.   

    也就是我在一个CView里放了一个CDialog做为一个面板来放控件CTreeCtrl。
    为什么这个CDialog不能响应CTreeCtrl的通知消息
    ON_NOTIFY(TVN_SELCHANGING, IDC_TREE_VIEW, OnSelchangingTreeView)
    ON_NOTIFY(TVN_ITEMEXPANDING, IDC_TREE_VIEW, OnItemExpandingTreeView)
    还有更好的控件那来做面板吗?