BOOL CRegressTreeDlg::OnInitDialog(){ CDialog::OnInitDialog(); DNAStat_Tree = (CTreeCtrl *)GetDlgItem(IDC_TREE1); DepthEdit = (CEdit *)GetDlgItem(IDC_DEPTH); CString d; d.Format("%d", DNAStat->getDepth()); DepthEdit->SetWindowText(d); try{ DNAStat->toTreeCtrl(DNAStat_Tree, DNAStat_Tree->GetRootItem()); } catch(CString ErrMsg){ CString Messg2(_T("--> Unable to display CDNAStatement in TreeForm at CRegressTreeDlg::OnInitDialog()")); Messg2 = ErrMsg + Messg2; ExitError(Messg2); } ExpandTree(DNAStat_Tree->GetRootItem()); VarEdit = (CEdit*)GetDlgItem(IDC_X1EDIT); FuncRes = (CEdit*)GetDlgItem(IDC_FXEDID); FuncPrime = (CEdit*)GetDlgItem(IDC_PRIMEFX); VarEdit->SetWindowText(CString(_T("UNDEF"))); FuncRes->SetWindowText(CString(_T("UNDEF"))); FuncPrime->SetWindowText(CString(_T("UNDEF"))); return TRUE; }
/* EBaseItem* EXTreeCtrl::GetBaseItem(HTREEITEM hTi) { if(!hTi) { // First see if an item is active if(m_hActiveItem) { hTi = m_hActiveItem; SelectItem(hTi); m_hActiveItem = 0; } else { if(m_bContextMenuActivated) { hTi = GetRootItem(); } else { // Try to get active item hTi = GetSelectedItem(); } } if(!hTi) { hTi = GetRootItem(); } } if(hTi) { return reinterpret_cast < EBaseItem * > (GetItemData(hTi)); } return NULL; } */ void EXTreeCtrl::ExpandTree(HTREEITEM hItem,bool bIncludeSub) { if(hItem == NULL) hItem = GetRootItem(); if(hItem) { Expand(hItem,TVE_EXPAND); if(bIncludeSub) { HTREEITEM ChildItem = GetChildItem(hItem); while(ChildItem != NULL) { Expand(ChildItem,TVE_EXPAND); ExpandTree(ChildItem,true); ChildItem = GetNextItem(ChildItem,TVGN_NEXT); } } } /* if(hItem == NULL) return; Expand(hItem,TVE_EXPAND); HTREEITEM ChildItem = GetChildItem(hItem); do { Expand(ChildItem,TVE_TOGGLE); } while( (ChildItem = GetNextSiblingItem( ChildItem )) != NULL ); */ }
///////////////////////////////////////////////////////////////////////////// // CSettingsDialog message handlers // BOOL CSettingsDialog::OnInitDialog() { CDialog::OnInitDialog(); // TODO: Add extra initialization here m_PageFrame.GetWindowRect(m_FrameRect); ScreenToClient(m_FrameRect); m_FrameRect.DeflateRect(2,2); SetWindowText(m_csTitle); // Set some styles for indicator bar m_CaptionBarCtrl.m_textClr = ::g_PaintManager->GetColor(COLOR_3DFACE); m_CaptionBarCtrl.m_fontWeight = FW_BOLD; m_CaptionBarCtrl.m_fontSize = 14; m_CaptionBarCtrl.m_csFontName = "Segoe UI"; m_CaptionBarCtrl.SetConstantText(m_csLogoText); InitTreeCtrl(); // Initialize the tree control with options ExpandTree(); if (m_pInfo.GetAt(0)) ShowPage(m_pInfo.GetAt(0)); if (!m_pParent) { GetDlgItem(IDAPPLY)->EnableWindow(FALSE); } return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE }
void CRegressTreeDlg::ExpandTree(HTREEITEM Branch){ DNAStat_Tree->Expand(Branch, TVE_EXPAND); if(DNAStat_Tree->ItemHasChildren(Branch)){ HTREEITEM Kid = DNAStat_Tree->GetNextItem(Branch, TVGN_CHILD); while(Kid){ ExpandTree(Kid); Kid = DNAStat_Tree->GetNextItem(Kid, TVGN_NEXT); } } }
void CMultiSelTreeCtrl::OnItemExpanding(NMHDR* pNMHDR, LRESULT* pResult) { NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR; HTREEITEM parent=m_LastParent; while( 1 ) { // If expanding/collapsing node is a parent of selected items, // unselect all. // No need to check pNMTreeView->action, since no items will // be selected under parent if expanding, and all must be // cleared while deleting // if(pNMTreeView->itemNew.hItem == parent) { UnselectAll(); break; } if(parent == NULL || parent == TVI_ROOT) break; parent=GetParentItem(parent); } // whenever we expand a folder, we have to call both p4 dirs // and p4 fstat for that subdirectory. ExpandTree is a // virtual function in depotview that does this. // if ( pNMTreeView->action == TVE_EXPAND ) ExpandTree( pNMTreeView->itemNew.hItem ); else if ( pNMTreeView->action == TVE_COLLAPSE ) CollapseTree( pNMTreeView->itemNew.hItem ); // wait at least 20 secs before autopolling for updates MainFrame()->WaitAWhileToPoll(); *pResult = 0; }
void EXTreeCtrl::RefreshDataItem(IXTreeItem *pITreeItem) { HTREEITEM hItem = NULL; if(pITreeItem) { hItem = FindItemInSubTree(GetRootItem(),pITreeItem); } else { // Get Item hItem = GetSelectedItem(); } if(hItem) { IXTreeItem *pTree = (IXTreeItem*)GetItemData( hItem ); // EBaseItem *pBase = (EBaseItem*)GetItemData( hItem ); // IXTreeItem *pTree = pBase->m_pITreeMember; HTREEITEM hParentItem; if(hItem != GetRootItem()) hParentItem = GetParentItem(hItem); else hParentItem = hItem; if(hParentItem) { RefreshSubItems(hParentItem); ExpandTree(hParentItem); // Find new item hItem = FindItemInSubTree(hParentItem,pTree); EnsureVisible(hItem); SelectItem(hItem); } } }
//初始化浏览器控件(nID为资源文件中树型控件的id) BOOL Init_Browser(HWND hWnd,UINT nID) { HIMAGELIST hImageList; LPSHELLFOLDER lpsf = 0 ; SHFILEINFO sfi; HRESULT hr ; BOOL bOK; memset(szFoldername,0,MAX_PATH); hTreeWnd=GetDlgItem(hWnd,nID); hImageList = (HIMAGELIST)SHGetFileInfo((LPCSTR)"C:\\", 0, &sfi, sizeof(SHFILEINFO), SHGFI_SYSICONINDEX | SHGFI_SMALLICON) ; if(hImageList) TreeView_SetImageList(hTreeWnd,hImageList,0); hr=SHGetDesktopFolder(&lpsf) ; if( SUCCEEDED(hr)) { TreeView_DeleteAllItems(hTreeWnd); FillTreeView(hTreeWnd,lpsf,NULL,TVI_ROOT) ; ExpandTree(); TreeView_SelectItem(hTreeWnd,TreeView_GetRoot(hTreeWnd));//,TVGN_FIRSTVISIBLE); bOK = TRUE; } else bOK = FALSE; if(lpsf) lpsf->Release(); return bOK; }