VC2010 设置操作MDI窗体,获得文档视图,设置某个TAB页居最前方
void CViewTree::OnTvnSelchanged(NMHDR *pNMHDR, LRESULT *pResult) { LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR); HTREEITEM ht=GetSelectedItem(); CString strSelect=GetItemText(ht); DWORD_PTR dwd=GetItemData(ht); if (dwd!=NULL) { //AfxMessageBox("aa"); JZQINFO *jzqinfo=(JZQINFO*)dwd; POSITION curTemplatePos = AfxGetApp()->GetFirstDocTemplatePosition();
while(curTemplatePos != NULL) { CDocTemplate* curTemplate = AfxGetApp()->GetNextDocTemplate(curTemplatePos); CString str; curTemplate->GetDocString(str, CDocTemplate::docName); if(str == _T("WLMeter")) { if (FindView(curTemplate,jzqinfo->strJzqID)) { return; } //CDocument *pDocument=curTemplate-> CDocument *pDocument=curTemplate->OpenDocumentFile(NULL); pDocument->SetTitle(jzqinfo->strJzqID); //pDocument->GetNextView(); POSITION pos=pDocument->GetFirstViewPosition(); CWLMeterView *pWLMeterView=(CWLMeterView*)(pDocument->GetNextView(pos)); pWLMeterView->UpdateData(false); return; } }
} *pResult = 0; } BOOL CViewTree::FindView(CDocTemplate *pDocTemplate,CString title) { //CDocument * pCurrentDoc =(CFrameWnd *)m_pMainWnd->GetActiveDocument(); POSITION curDocPos = pDocTemplate->GetFirstDocPosition(); while(curDocPos != NULL) { CDocument* pDocument = pDocTemplate->GetNextDoc(curDocPos); if (pDocument->GetTitle()==title) { //pDocument-> POSITION pos=pDocument->GetFirstViewPosition(); CWLMeterView *pWLMeterView=(CWLMeterView*)(pDocument->GetNextView(pos)); pWLMeterView->GetParent()->BringWindowToTop(); //GetParent(pWLMeterView)->SetActiveWindow(); //pWLMeterView->SetFocus(); //pWLMeterView->SetWindowPos(&CWnd::wndBottom, 0, 0, 0, 0, //SWP_NOMOVE|SWP_NOSIZE|SWP_NOACTIVATE); //pDocument->UpdateAllViews(NULL); //SetActiveMDIChild(pWLMeterView); return TRUE; } } return FALSE; }
|