亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

以下語句。麻煩幫忙看看,該如何重載CDocument類的虛函數?

以下語句。麻煩幫忙看看,該如何重載CDocument類的虛函數?

鳳凰求蠱 2021-07-08 11:07:44
我要實現“當文檔被修改時,在標題上加上標志'*'?”網上搜出的全是:重載CDocument類的虛函數virtual SetModifiedFlag:void CTest2Doc::SetModifiedFlag(BOOL bModified){CString strTitle = GetTitle();CString strDirtyFlag = " *"; // note space before the '*'// so we don't break Save As dialogif (!IsModified() && bModified){SetTitle(strTitle + strDirtyFlag);}else if ( IsModified() && !bModified ){int nTitleLength = strTitle.GetLength();int nDirtyLength = strDirtyFlag.GetLength();SetTitle( strTitle.Left(nTitleLength - nDirtyLength) );}UpdateFrameCounts();CDocument::SetModifiedFlag(bModified);}但是都沒有提如何重載該函數,我在CRichEditDoc的“Add virtual Function”中并未看到此函數,手動加等各種方法都試過了,還是沒能解決,請高手賜教,不勝感激!建立類向導中并無此函數,所以無法添加,我只能手動添加,在.h中加個申明,在.cpp中加個函數,virtual也加了,CDocument::SetModifiedFlag(bModified);也加了,效果是程序剛一啟動時函數執行了一下,之后在文檔改動時就不執行了,我要的效果是只要文檔有改動就執行此函數,如何做到呢??
查看完整描述

2 回答

?
慕后森

TA貢獻1802條經驗 獲得超5個贊

1.你申明這個函數的時候是否加 virtual 了?
申明:virtual void :SetModifiedFlag(BOOL bModified);
2.函數實現中先執行 CDocument::SetModifiedFlag(bModified);
再執行你的代碼,否則你的修改會被覆蓋的。
3.調試一下看看你的代碼是否執行了。

查看完整回答
反對 回復 2021-07-11
?
繁華開滿天機

TA貢獻1816條經驗 獲得超4個贊

在類名上右鍵->add virtual function即可。

查看完整回答
反對 回復 2021-07-11
  • 2 回答
  • 0 關注
  • 388 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號