MFC中SDI程式建立流程的回顧

2021-06-17 22:30:49 字數 1240 閱讀 7675

sdi程式建立流程的回顧 

1.首先應用程式物件建立文件模板;

csingledoctemplate* pdoctemplate;

pdoctemplate = new csingledoctemplate(

idr_mainframe,

runtime_class(csdicoindoc),

runtime_class(cmainframe),       // main sdi frame window

runtime_class(csdicoinview));

2.文件模板建立文件物件、開啟或建立檔案;

ccommandlineinfo cmdinfo;  //處理命令列資訊類

ccommandlineinfo::ccommandlineinfo()  //ccommandlineinfo類的預設建構函式

filenew--->onfilenew();

fileopen--->opendocumentfile();

fileprint, fileprintto--->......  

filedde--->...

....

3.文件模板建立邊框視窗物件和邊框視窗;

4.接著邊框視窗物件建立視物件和視視窗。

下面以filenew動作為例,詳解建立過程:

a.呼叫文件模板管理器的成員函式onfilenew(m_pdocmanager->onfilenew());

b.模板管理器獲取文件模板物件指標,呼叫文件模板物件的opendocumentfile 函式(ptemplate->opendocumentfile(null))。

c.如果模板管理器發現有多個文件模板,就彈出乙個對話方塊讓使用者選擇文件模板。

d.csingledoctemplate::opendocumentfile();

//建立文件類

cdocument* pdocument = createnewdocument();

//建立框架類

cframewnd* pframe = createnewframe(pdocument, null);

e.呼叫cframewnd的虛函式initialupdateframe完成視窗初始化;

這些建立是以應用程式的文件模板為中心進行的。在建立這些mfc物件的同時,建立了它們之間的關係。建立這些之後,進行初始化,啟用主邊框視窗,把邊框視窗、視視窗顯示出來。

這樣,乙個sdi應用程式就完成了啟動過程,等待著使用者的互動或者輸入。

MFC單文件(SDI)全屏程式的實現

思路 按下f11時轉換全屏顯示方式 全屏時需要記錄視窗當前位置 記錄工具欄 狀態列的顯示屬性 隱藏 顯示選單欄 隱藏 顯示標題欄 最大化 最小化視窗 技術要點 為view新增keydown事件,當nchar 122時新增處理 在mainframe中新增狀態等變數 public bool m bful...

MFC的程式執行的整個流程

mfc 的程式執行的整個流程 第一步 宣告乙個全域物件 ex myobject 在我們自己寫的程式裡頭。第二步 由於 winmain 已經寫好了成 mfc函式,所以它編譯的時候會自動鏈結進來。於是,開始執行 afxwinmain 第三步 它做什麼動作呢?先取得之前宣告物件的指標,然後開始呼叫 myo...

MFC中的動態建立

1 為了能夠動態建立,程式必須維護乙個cruntimeclass的類,當需要去識別乙個類的時候,就依次去查詢這個鍊錶,而這個是通過一組巨集來實現的。因為是乙個鍊錶,所以就需要初始化,這個初始化在cobject中用稍有不同的巨集來實現的。2 cruntimeclass的結構 lpcstr m lpsz...