Example #1
0
void CCheckBoxTree::vSetCheckParent(HTREEITEM hItem)
{
    if(hItem == nullptr)
    {
        return;
    }

    HTREEITEM hParentItem = GetParentItem(hItem);
    HTREEITEM hChildItem;
    BOOL bAllChecked = TRUE;
    if( ItemHasChildren(hParentItem))
    {
        hChildItem = GetChildItem(hParentItem);
        while(hChildItem)
        {
            if(!bIsItemChecked(hChildItem))
            {
                bAllChecked = FALSE;
                break;
            }
            hChildItem = GetNextSiblingItem(hChildItem);
        }
    }
    BOOL fCheck=0;
    vSetCheck(hParentItem, bAllChecked);
    vSetCheckParent(hParentItem);
    vSetCheckChildren(hParentItem,!fCheck);
}
Example #2
0
void CTreeViewEx::vSetCheckParent(HTREEITEM hItem)
{
    if(hItem == NULL)
    {
        return;
    }
	CTreeCtrl &omTreeCtrl = GetTreeCtrl();
	HTREEITEM hParentItem = omTreeCtrl.GetParentItem(hItem);
    HTREEITEM hChildItem;
    BOOL bAllChecked = TRUE;
    if( omTreeCtrl.ItemHasChildren(hParentItem))
    {
        hChildItem = omTreeCtrl.GetChildItem(hParentItem);
        while(hChildItem)
        {   
            if(!bIsItemChecked(hChildItem))
            {
                bAllChecked = FALSE;
                break;
            }
            hChildItem = omTreeCtrl.GetNextSiblingItem(hChildItem);
        }
    }
    vSetCheck(hParentItem, bAllChecked);
    vSetCheckParent(hParentItem);
	return;
}
Example #3
0
/******************************************************************************
Function Name  :  OnLButtonDown
Input(s)       :  UINT unFlag - Flags
                  CPoint point - Mouse Pointer point
Output         :  void
Functionality  :  ON_WM_LBUTTON Handler used to toggle the check point
Member of      :  CTreeViewEx
Friend of      :  -
Author(s)      :  Venkatanarayana Makam
Date Created   :  30/03/2011
Modifications  :
******************************************************************************/
void CTreeViewEx::OnLButtonDown(UINT unFlag, CPoint point)
{
    UINT unHitTestFlags = 0;
    HTREEITEM hItem = GetTreeCtrl().HitTest(point, &unHitTestFlags);

    if((hItem != NULL) && (TVHT_ONITEMSTATEICON & unHitTestFlags))
    {
        BOOL bCheck = bIsItemChecked(hItem);
        vSetCheck(hItem, !bCheck);
        vSetCheckChildren(hItem, !bCheck);
        vSetCheckParent(hItem);
        return;
    }
    CTreeView::OnLButtonDown(unFlag, point);
}