本文共 2302 字,大约阅读时间需要 7 分钟。
class CT : public CDockablePane{ // 构造public: CT(); virtual ~CT(); CImageList m_FileViewImages;//图片资源管理链表 CTreeCtrl m_wnView;protected: afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); afx_msg void OnWndFileTreeViewSelectChanged(NMHDR *pNMHDR, LRESULT *pResult); afx_msg void OnWndFileTreeViewDoubleClicked(NMHDR *pNMHDR, LRESULT *pResult); DECLARE_MESSAGE_MAP()};//ON_NOTIFY通知消息 出现在控件内部非按钮类消息//TVN_SELCHANGED选择事件ID//NM_DBLCLK双击事件IDBEGIN_MESSAGE_MAP(CT, CDockablePane) ON_WM_CREATE() ON_NOTIFY(NM_DBLCLK, /*CTreeCtrl控件的ID*/4, OnWndFileTreeViewDoubleClicked) ON_NOTIFY(TVN_SELCHANGED, 4,OnWndFileTreeViewSelectChanged)END_MESSAGE_MAP()int CT::OnCreate(LPCREATESTRUCT lpCreateStruct){ if (CDockablePane::OnCreate(lpCreateStruct) == -1) return -1; CRect rectDummy; rectDummy.SetRectEmpty(); // 创建视图: const DWORD dwViewStyle = WS_CHILD | WS_VISIBLE | TVS_HASLINES | TVS_LINESATROOT | TVS_HASBUTTONS ; if (!m_wnView.Create(dwViewStyle/*显示风格*/, rectDummy, this, /*控件ID*/4)) { TRACE0("未能创建文件视图\n"); return -1; // 未能创建 } // 加载视图图像: m_FileViewImages.Create(IDB_FILE_VIEW/*资源视图里面位图的ID*/,/*16个像素为一个位图*/ 16, 0, RGB(255, 0, 255)); //设置CTreeCtrl的位图资源 以16×16的像素为单位,位图ID为依次为:0、1、2.... m_wnView.SetImageList(&m_FileViewImages, TVSIL_NORMAL); //m_wnView.SetItemImage(HTREEITEM,0,0);//HTREEITEM节点,其中0,0都为位图ID return 0;}/************************************************************************//* 双击事件 *//************************************************************************/void CT::OnWndFileTreeViewDoubleClicked( NMHDR *pNMHDR, LRESULT *pResult ){ HTREEITEM hCurTree= m_wndFileView.GetSelectedItem();//获得当前选中ID UINT in = m_wndFileView.GetSelectedCount(); m_wndFileView.GetItemData(hCurTree);//获得当前选中节点的附件信息 HTREEITEM(可以是你存的一个32位的地址,强转成你存放的类型(CString*、float*.....)即可) m_wndFileView.GetItemText(hCurTree);//获取当前选中节点的名称}/************************************************************************//*选择事件 *//************************************************************************/void CT::OnWndFileTreeViewSelectChanged( NMHDR *pNMHDR, LRESULT *pResult ){ LPNMTREEVIEW pNMTreeView = reinterpret_cast(pNMHDR); //将pNMHDR强制转换成LPNMTREEVIEW型 // TODO: 在此添加控件通知处理程序代码 *pResult = 0;}
转载地址:http://eajub.baihongyu.com/