WTL的CTreeViewCtrl为什么收不到TVN_ITEMEXPANDING通知?

lexchou 2006-03-08 07:41:18
郁闷死了,弄了一下午,我自己派生一个CTreeViewCtrl,

class CDeviceFileTreeCtrl :
public CWindowImpl<CDeviceFileTreeCtrl,CTreeViewCtrlEx>
{
public:
BEGIN_MSG_MAP_EX(CDeviceFileTreeCtrl)
MSG_WM_CONTEXTMENU(OnContextMenu)
NOTIFY_CODE_HANDLER(TVN_ITEMEXPANDING,OnItemExpanding)
DEFAULT_REFLECTION_HANDLER()
END_MSG_MAP()
}
然后我就子类化对话框上的一个CTreeViewCtrlEx:
m_FileTree.SubclassingWindow(GetDlgItem(IDC_TREE1));

OnContextMenu可以收到,但是WM_NOTIFY的TVN_ITEMEXPANDING却总是收不到。

请问一下我哪里错了?
...全文
265 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
yinzhaohui 2006-03-14
  • 打赏
  • 举报
回复
1.在该窗口的父窗口的消息映射中加入REFLECT_NOTIFICATIONS()
2.使用REFLECTED_NOTIFY_CODE_HANDLER
lexchou 2006-03-10
  • 打赏
  • 举报
回复
问题解决了,在窗口的END_MSG_MAP前加入REFLECT_NOTIFICATIONS(),在子类化的控件的BEGIN_MSG_MAP/END_MSG_MAP间加入REFLECTED_NOTIFY_CODE_HANDLER_EX(TVN_ITEMEXPANDING, OnItemExpanding2)
就可以了
lexchou 2006-03-08
  • 打赏
  • 举报
回复
今天刚开始接触WTL就遇到这么恼人的问题……
连IDE生成的代码都似乎无效

15,975

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧