1.去掉默認(rèn)的title的“無標(biāo)題” 字樣和系統(tǒng)的文件名,或者添加自己喜歡的標(biāo)題,只需在MainFrame的PreCreateWindow中添加 cs.style&=~FWS_ADDTOTITLE; m_strTitle = "自定義的標(biāo)題"; 2.FormView去掉因為視圖變化引起的滾動條: 在視圖類中增加Onsize()函數(shù),,在去掉其中的CFormView::OnSize(nType, cx, cy);
3.單文檔的多視切換 第一步:在source View中選中Dialog,,點右鍵插入FormView對話框,,雙擊這個對話框,新建類,基類選擇CformView類,然后確定 然后再Mainframe中創(chuàng)建成員函數(shù),,selectView(int ID) selectView(int ID) { CView *pNewView=NULL; if(m_setup!=NULL) { m_setup->CloseCamera(); m_setup=NULL; } switch(ID) { case IDM_GET_SETUP: m_setup=new CFormViewGetSetUp(); pNewView=(CView*)m_setup; break; case IDM_GET_PHOTOGRAPH: pNewView=(CView*)new CFormViewGetPhotograph(); break; case IDM_GET_IMPORT: pNewView=(CView*)new CFormViewGetImport(); break; }
CCreateContext context; CView *pOldView=GetActiveView(); //保存舊視圖 context.m_pCurrentDoc=pOldView->GetDocument(); pNewView->Create(NULL,NULL,WS_CHILD,CFrameWnd::rectDefault,this, nView, &context); pNewView->OnInitialUpdate(); SetActiveView(pNewView); //改變活動的視圖 pNewView->ShowWindow(SW_SHOW); //顯示新的視圖 pOldView->ShowWindow(SW_HIDE); //隱藏舊的視圖 pNewView->SetDlgCtrlID(AFX_IDW_PANE_FIRST);
delete pOldView; //刪除舊視圖 RecalcLayout(); //調(diào)整框架窗口 } 然后在菜單選項中響應(yīng),調(diào)用這個函數(shù)selectView(int ID)ID為對應(yīng)對話框的ID,。這個程序做完以后會碰到在formview對話框中對控件布局的問題,,不然拖動邊框和最大最小化窗口都會出現(xiàn)很不協(xié)調(diào)的窗口,當(dāng)在一個formView上添加一些控件后,,改變窗口的大小,,拉小窗口時,會一直縮小,,直到看不見為止,,要想做到拉小窗口,到顯示全部控件后,,不能再拉小,只需在CMainFrame的類中添加消息,,WM_GETMINMAXINFO,然后在OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI)函數(shù)中添加如下代碼: CFrameWnd::OnGetMinMaxInfo(lpMMI); if( GetActiveView() && GetActiveView()->IsKindOf( RUNTIME_CLASS(ETSLayoutFormView) ) ) { GetActiveView()->SendMessage( WM_GETMINMAXINFO, 0, (LPARAM) lpMMI ); }
|
|