void EXWaitingTreeCtrl::PreExpandItem(HTREEITEM hItem) { if (!NeedsChildren(hItem)) { if (WantsRefresh(hItem)) { // delete child items before populating DeleteChildren(hItem); } else { // doesn't want new items m_hItemToPopulate = NULL; return; } } // if it wants new child items, go on m_hItemToPopulate = hItem; // fix redraw when expanded programatically UpdateWindow(); // hide changes until it's expanded SetRedraw(FALSE); // add wait msg, to allow item expansion m_hItemMsg = InsertItem(m_sWaitMsg, m_hItemToPopulate); // zero progress m_iItemCount = 1; m_iItemIndex = 0; }
void CTangramHtmlTreeExWnd::PreExpandItem(HTREEITEM hItem) { if(hItem) { m_hCurSelectedItem = hItem; CTangramXHtmlTreeNode *pXTCD = GetItemDataStruct(hItem); if(pXTCD->m_hWaitItemMsg) { m_hItemToPopulate = hItem; // fix redraw when expanded programatically UpdateWindow(); // hide changes until it's expanded SetRedraw(false); // add wait msg, to allow item expansion m_hItemMsg = pXTCD->m_hWaitItemMsg;//InsertItem(m_sWaitMsg, m_hItemToPopulate); // zero progress m_iItemCount = 1; m_iItemIndex = 0; return; } } if (!NeedsChildren(hItem)) { if (WantsRefresh(hItem)) { // delete child items before populating DeleteChildren(hItem); } else { // doesn't want new items m_hItemToPopulate = NULL; return; } } // if it wants new child items, go on m_hItemToPopulate = hItem; // fix redraw when expanded programatically UpdateWindow(); // hide changes until it's expanded SetRedraw(false); // add wait msg, to allow item expansion m_hItemMsg = InsertItem(m_sWaitMsg, m_hItemToPopulate); // zero progress m_iItemCount = 1; m_iItemIndex = 0; }
void EXWaitingTreeCtrl::OnItemExpanded(NMHDR* pNMHDR, LRESULT* pResult) { NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR; if (pNMTreeView->action & TVE_EXPAND) ExpandItem(pNMTreeView->itemNew.hItem); else if (pNMTreeView->action & TVE_COLLAPSE) { if (WantsRefresh(pNMTreeView->itemNew.hItem)) { // delete child items DeleteChildren(pNMTreeView->itemNew.hItem); } } *pResult = 0; }