如果把Tree Control的More Styles里的check Box属性选中的话,我如何取得用户是否选中还是没选中啊?有没有相应的API.谢谢~

解决方案 »

  1.   

    处理用户鼠标左键点击事件,用HitTest来判断用户是否选择了某一项
      

  2.   

    OnInit中加:
    m_treeCtrl.InsertItem("item1");
    m_treeCtrl.InsertItem("item2");void CCDialogDlg::OnButton1() 
    {
    HTREEITEM hItem = m_treeCtrl.GetRootItem();
    while(NULL != hItem)
    {
    CString str= m_treeCtrl.GetItemText(hItem);
    if("item2" == str)
    {
    if(m_treeCtrl.GetCheck(hItem))
    AfxMessageBox("选中");
    }
    hItem = m_treeCtrl.GetNextVisibleItem(hItem);
    }
    }
      

  3.   

    CTreeCtrl::HitTest seems to be what you want. TVHT_ONITEMSTATEICON 
    indicates the check box is clicked. For more information, Please check the 
    article below:Q261289 HOWTO: Know When the User Clicks Check Box in a TreeView Control
    http://support.microsoft.com/support/kb/articles/q261/2/89.asp
      

  4.   

    HTREEITEM root;
    root = m_treeCtrl.InsertItem("root");

    m_treeCtrl.InsertItem("item1",root);
    m_treeCtrl.InsertItem("item2",root);void CCDialogDlg::OnClickTree1(NMHDR* pNMHDR, LRESULT* pResult) 
    {

    HTREEITEM root = m_treeCtrl.GetRootItem();
    bool bCheck = m_treeCtrl.GetCheck(root);

    HTREEITEM hItem = m_treeCtrl.GetChildItem(root);
    while(NULL != hItem)
    {
    m_treeCtrl.SetCheck(hItem,!bCheck);
    hItem = m_treeCtrl.GetNextSiblingItem(hItem);
    }

    *pResult = 0;
    }
    将has lines
    has buttons
    lines at root