資源描述:
《《窗口與文檔》PPT課件》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第二章窗口與單文檔應(yīng)用程序2VC的MFC庫支持三種不同的應(yīng)用程序單文檔界面(SDI)多文檔界面(MDI)基于對話框的應(yīng)用程序SDI的應(yīng)用程序只有一個窗口MDI的應(yīng)用程序每次可以讀寫多個文件或文檔,可同時對多個文檔進(jìn)行操作,可以有多個子窗口主要差別在創(chuàng)建SDI界面的應(yīng)用程序時,不生成CChildFrame類,CMainFrame類的基類為CFrameWnd在創(chuàng)建MDI界面的應(yīng)用程序時,CMainFrame類的基類為CMDIFrameWnd使用AppWizard創(chuàng)建SDI和MDI界面的應(yīng)用程序的過程幾乎完全一樣2.1窗口框架窗口框架窗口可分為兩類:一類是應(yīng)用程序主
2、窗口,另一類是文檔窗口。主窗口和文檔窗口主框架窗口是應(yīng)用程序直接放置在桌面(DeskTop)上的那個窗口,每個應(yīng)用程序只能有一個主框架窗口,主框架窗口的標(biāo)題欄上往往顯示應(yīng)用程序的名稱。2.1.1窗口風(fēng)格窗口風(fēng)格既可以通過MFCAppWizard來設(shè)置,也可以在主窗口或文檔窗口類的PreCreateWindow函數(shù)中修改CREATESTRUCT結(jié)構(gòu),或是可以調(diào)用CWnd類的成員函數(shù)ModifyStyle和ModifyStyleEx來更改。2.1.1窗口風(fēng)格2.用MFCAppWizard設(shè)置MFCAppWizard有一個[高級]按扭(在創(chuàng)建單文檔或多文檔應(yīng)用程序過
3、程的第四步中),允許用戶指定有關(guān)SDI和MDI框架窗口的屬性,AdvancedOptions對話框的WindowStyles頁面2.1.2窗口狀態(tài)的改變1.用ShowWindow改變窗口的顯示狀態(tài)當(dāng)應(yīng)用程序運行時,Windows會自動調(diào)用應(yīng)用程序框架內(nèi)部的WinMain函數(shù),并自動查找該應(yīng)用程序類的全局變量theApp,然后自動調(diào)用用戶應(yīng)用程序類的虛函數(shù)InitInstance,該函數(shù)會進(jìn)一步調(diào)用相應(yīng)的函數(shù)來完成主窗口的構(gòu)造和顯示工作BOOLCEx_SDIApp::InitInstance(){…m_pMainWnd->ShowWindow(SW_SHOW);
4、//顯示窗口m_pMainWnd->UpdateWindow();//更新窗口returnTRUE;}2.1.2改變窗口的大小和位置CWnd中的SetWindowPos是一個非常有用的函數(shù);它不僅可以改變窗口的大小、位置,而且還可以改變所有窗口在堆棧排列的次序(Z次序),這個次序是根據(jù)它們在屏幕出現(xiàn)的先后來確定的。voidMoveWindow(intx,inty,intnWidth,intnHeight,BOOLbRepaint=TRUE);voidMoveWindow(LPCRECTlpRect,BOOLbRepaint=TRUE);m_pMainWnd->
5、GetWindowRect(rcWindow);m_pMainWnd->MoveWindow(100,100,rcWindow.Width(),rcWindow.Height(),TRUE);2.2單文檔應(yīng)用程序2.2單文檔中文檔與視圖的創(chuàng)建BOOLCEx_SDIApp::InitInstance(){CSingleDocTemplate*pDocTemplate;pDocTemplate=newCSingleDocTemplate(IDR_MAINFRAME,//資源IDRUNTIME_CLASS(CEx_SDIDoc),//文檔類RUNTIME_CLASS
6、(CMainFrame),//主框架窗口類RUNTIME_CLASS(CEx_SDIView));//視圖類AddDocTemplate(pDocTemplate);returnTRUE;}單文檔中文檔和視圖的創(chuàng)建通常是在CwinApp類的成員函數(shù)BOOLInitInstance()中,通過創(chuàng)建文檔模板實現(xiàn)的2.3切分窗口切分窗口可以實現(xiàn)在單文檔應(yīng)用程序中顯示多個視圖,CSplitterWnd類提供了切分窗口的功能,使一個窗口顯示多個版面,這個版面通常是一個視圖,而這個視圖的的基類為CView.2.3單文檔中顯示位圖