CTreeCtrl树基础MFC知识

来源:互联网 发布:西单附近美食知乎 编辑:程序博客网 时间:2024/04/27 06:36

头文件XXXX.h

protected:HICON m_hIcon;// 生成的消息映射函数virtual BOOL OnInitDialog();afx_msg void OnPaint();afx_msg HCURSOR OnQueryDragIcon();DECLARE_MESSAGE_MAP()public:afx_msg void OnTvnSelchangedTree1(NMHDR *pNMHDR, LRESULT *pResult);CTreeCtrl m_Tree;CEdit m_HAHA;CImageList m_list;CBitmap   bm[100]; void SetTree(void);};

XXXXX.cpp

void CMFCTreeDlg::DoDataExchange(CDataExchange* pDX){CDialogEx::DoDataExchange(pDX);DDX_Control(pDX, IDC_TREE1, m_Tree);DDX_Control(pDX, IDC_HAHA, m_HAHA);}BEGIN_MESSAGE_MAP(CMFCTreeDlg, CDialogEx)ON_WM_PAINT()ON_WM_QUERYDRAGICON()ON_NOTIFY(TVN_SELCHANGED, IDC_TREE1, &CMFCTreeDlg::OnTvnSelchangedTree1)END_MESSAGE_MAP()

HTREEITEM person, kefu;BOOL CMFCTreeDlg::OnInitDialog(){CDialogEx::OnInitDialog();// 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动//  执行此操作SetIcon(m_hIcon, TRUE);// 设置大图标SetIcon(m_hIcon, FALSE);// 设置小图标// TODO: 在此添加额外的初始化代码SetTree();return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE}
void CMFCTreeDlg::OnTvnSelchangedTree1(NMHDR *pNMHDR, LRESULT *pResult){LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR);UpdateData(true);node_name = m_Tree.GetItemText(pNMTreeView->itemNew.hItem);SetWindowText(node_name);//if(pNMTreeView->itemNew.hItem == root)//{//SetDlgItemText(IDC_HAHA, "root");//}//else if(node_name == "small")//{//SetDlgItemText(IDC_HAHA, "small");//}UpdateData(false);*pResult = 0;}


void CMFCTreeDlg::SetTree(void){m_Tree.ModifyStyle(NULL, TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT);bm[0].LoadBitmap(IDB_BITMAP1); bm[1].LoadBitmap(IDB_BITMAP2);m_list.Create(16,16, ILC_MASK,   0,   4);m_list.Add(&bm[0],   (COLORREF)0xFFFFFF); m_list.Add(&bm[1],   (COLORREF)0xFFFFFF); m_Tree.SetImageList(&m_list, TVSIL_NORMAL);person = m_Tree.InsertItem(_T("最近联系人"), 0, 1);kefu = m_Tree.InsertItem(_T("客户"), 1, 0);m_Tree.InsertItem(_T("张三1"), 1, 0, person);m_Tree.InsertItem(_T("张三2"), 1, 0, person);m_Tree.InsertItem(_T("张四1"), 0, 1, kefu);m_Tree.InsertItem(_T("张四2"), 0, 1, kefu);}














0 0