當前位置:編程學習大全網 - 源碼下載 - 如何更改MFC的默認文檔操作模式

如何更改MFC的默認文檔操作模式

分析了MFC源代碼後,我們就可以知道了。默認菜單中的“新建”和“打開”消息分別對應CwinApp::OnFileNew()和CwinApp::OnFileOpen(),這兩個函數直接調用CDocManager::OnFileNew和CDocManager::OnFileOpen。CDocManager::OnFileOpen的工作流程如下:

1.調用CDocManager::DoPromptFileName,DoPromptFileName的作用是顯示文件打開對話框獲取文件名。

2.調用cwinapp::打開文檔文件(lpctstr lpszfilename)。

如果要改變文檔的打開方式,只需要在CWinApp的繼承類中重載DoPromptFileName和OpenDocumentFile即可。例如,更改默認的文件打開對話框。只需構建壹個文件來打開對話框,並在重載的DoPromptFileName中調用它來獲得壹個文件名。

我們來分析壹下CWinApp::OpenDocumentFile。OpenDocumentFile的工作流程是:

1.通過參數lpszFileName的後綴來確定使用哪個文檔模板。

2.對文檔模板的文檔、視圖和框架窗口進行調整。

3.調用CDocTemplate::OpenDocumentFile。

CDocTemplate::OpenDocumentFile是壹個純虛函數,由它的派生類CsingleDocTemplate和CMultiDocTemplate實現,用CsingleDocTemplate::open document file說明。

1.判斷是否有已存在的文檔,如果有,判斷是否已保存。

2.創建壹個新的框架窗口。

3.通過文件名路徑確定文件是否存在。如果存在,調用自定義CMyDoc::OnOpenDocument,否則調用CMyDoc::OnNewDocument。

從上面的分析,我們可以對MFC默認的文檔操作方式進行很多改變,比如改變文件打開和保存方式,改變文件打開和保存對話框。

上面顯示的各種源代碼都可以從VC安裝目錄下的MFC\include和mfc\src子目錄中獲得。CWinApp類、CDocTemplate類和CSingleDocManager、CDocument類的頭文件是afxwin.h,CWinApp類的源代碼在AppCore.cpp,CDocManager類的源代碼在Docmgr.cpp,CDocTemplate類和CsingleDocManager類的源代碼分別在doctempl.cpp和docsingl.cpp。

總之,學習MFC文檔視圖結構最好的方法就是多看MFC源代碼。

  • 上一篇:有哪些有用的在線教育平臺?
  • 下一篇:c語言連接SQL Server數據庫並操作表中數據的代碼沒有錯誤,但是無法執行
  • copyright 2024編程學習大全網