在进行树控件操作时候,当展开树的时候,是通过点击小加号展开的(不是点击树中的项),这个时候我要得到被展开项的有关信息,比如被展开项的ID号(通过SetItemData设置的),我如何才能得到被展开项的信息,即确定哪一项被展开了。

解决方案 »

  1.   

    TVN_ITEMEXPANDED Signals that a parent item's list of child items was expanded or collapsed 
    TVN_ITEMEXPANDING Signals that a parent item's list of child items is about to be expanded or collapsed 
      

  2.   

    void CCsdn21dlgDlg::OnSelchangedTree1(NMHDR* pNMHDR, LRESULT* pResult) 
    {
    NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR; CString str = m_treectrl.GetItemText(pNMTreeView->itemNew.hItem);

    *pResult = 0;
    }
      

  3.   

    BOOL CCsdn21dlgDlg::OnInitDialog()
    {
    CDialog::OnInitDialog(); // Add "About..." menu item to system menu. // IDM_ABOUTBOX must be in the system command range.
    ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
    ASSERT(IDM_ABOUTBOX < 0xF000); CMenu* pSysMenu = GetSystemMenu(FALSE);
    if (pSysMenu != NULL)
    {
    CString strAboutMenu;
    strAboutMenu.LoadString(IDS_ABOUTBOX);
    if (!strAboutMenu.IsEmpty())
    {
    pSysMenu->AppendMenu(MF_SEPARATOR);
    pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
    }
    } // Set the icon for this dialog.  The framework does this automatically
    //  when the application's main window is not a dialog
    SetIcon(m_hIcon, TRUE); // Set big icon
    SetIcon(m_hIcon, FALSE); // Set small icon

    // TODO: Add extra initialization here
    HTREEITEM hItem = m_treectrl.InsertItem("root");
    m_treectrl.SetItemData(hItem,100);
    m_treectrl.InsertItem("item1",hItem);
    m_treectrl.InsertItem("item2",hItem); return TRUE;  // return TRUE  unless you set the focus to a control
    }void CCsdn21dlgDlg::OnSelchangedTree1(NMHDR* pNMHDR, LRESULT* pResult) 
    {
    NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR; DWORD data = m_treectrl.GetItemData(pNMTreeView->itemNew.hItem);

    *pResult = 0;
    }
      

  4.   

    TVN_SELCHANGED 选择展开都会作处理
      

  5.   

    “是通过点击小加号展开的(不是点击树中的项)“ 此时该项没有选中呀!void CDangerInfoDlg::OnItemexpandedItemSortTree(NMHDR* pNMHDR, LRESULT* pResult) 
    {
    NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR; *pResult = 0;
    }
      

  6.   

    用HitTest来判断点在哪一item上就可以了
      

  7.   

    点击小加号 触发此消息 TVN_SELCHANGED
      

  8.   

    void CTest6Dlg::OnItemexpandedTree1(NMHDR* pNMHDR, LRESULT* pResult) 
    {
    NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
    // TODO: Add your control notification handler code here //在这里添加代码 *pResult = 0;
    }