TreeView中怎样知道用户在单击修改了某一项的CheckBox?就是说,一改了就要马上通知程序.我要做到如下功能,就像那些杀毒程序一样.父项选定,子项也选定之类的,所以我要知道用户是否在设置某项前面的checkbox.

解决方案 »

  1.   

    LRESULT CMyTreeCtrl::OnLButtonDblClk(WPARAM wParam, LPARAM lParam)
    {
    if ( GetStyle() & TVS_CHECKBOXES)
    {
    UINT uFlags;
    HTREEITEM hItem = HitTest( point, &uFlags);

    if ((hItem != NULL) && (TVHT_ONITEMSTATEICON & uFlags))
    {
    // get the state
    BOOL checked = FALSE;
    checked = TreeView_GetCheckState( GetSafeHwnd(), hItem);
                            // ....
    }
    }...
    }
      

  2.   

    void CTest6Dlg::OnClickTree1(NMHDR* pNMHDR, LRESULT* pResult) { // TODO: Add your control notification handler code here NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
    UINT uFlag;
    CPoint point;
    GetCursorPos(&point);
    ScreenToClient(&point);
    HTREEITEM hItem = this->HitTest(point,&uFlag);
    if ( (NULL!=hItem) && (flag&TVHT_ONITEMSTATEICON))
    {
    ...
    }
    *pResult = 0;}
      

  3.   

    我写到了.GetCursorPos(&point);
    ScreenToClient(&point);
    HTREEITEM hItem = this->HitTest(point,&uFlag);没想到用 uFlag ,痛苦,谢谢上面俩位了...
      

  4.   

    加载xml文件错误,请跟斑竹联系!!请斑竹生成以下社区的贴子列表!!
    roomid:5001
    typenum:2=============================================================两位兄台,不知道这是在搞什么??我已经结帖了.不知道怎么会这样??
      

  5.   

    加载xml文件错误,请跟斑竹联系!!请斑竹生成以下社区的贴子列表!!
    roomid:5001
    typenum:2=============================================================两位兄台,不知道这是在搞什么??我已经结帖了.不知道怎么会这样??