VC++ 单文档项目显示打开的文件
VC++ 新建一個(gè)單文檔項(xiàng)目以后,直接運(yùn)行;效果如下;
界面上的菜單,工具條,都是單文檔項(xiàng)目框架自動(dòng)生成;
然后選擇 文件 菜單中的 打開(kāi) 文件;點(diǎn)擊后,并看不到任何反應(yīng);但是此時(shí)框架肯定進(jìn)行了一些動(dòng)作,保存了可以直接使用的東西;
那么如何顯示打開(kāi)的文件呢?
進(jìn)入類向?qū)?#xff0c;類名下拉選中Doc類;消息選中 OnOpenDocument;看一下此時(shí)還沒(méi)有處理函數(shù);
點(diǎn)擊 Add Function,看下面成員函數(shù)列表,添加了函數(shù)OnOpenDocument;
點(diǎn) Edit Code,可以進(jìn)入編輯該函數(shù)的代碼;
先在Doc類的頭文件中,添加一個(gè)成員變量;用于存儲(chǔ)打開(kāi)的文件內(nèi)容;
在OnOpenDocument函數(shù)中添加讀取文件的代碼;完成后如下;
BOOL CTest1Doc::OnOpenDocument(LPCTSTR lpszPathName) {if (!CDocument::OnOpenDocument(lpszPathName))return FALSE;// TODO: Add your specialized creation code hereif(lpszPathName!=NULL) { CFile pCFile;int hResult=pCFile.Open(lpszPathName, CFile::modeReadWrite); if(hResult != 0){// AfxMessageBox("打開(kāi)文件成功");}//將文件讀到dgx字符串CString temp;//可實(shí)現(xiàn)重復(fù)打開(kāi)文件pCFile.Read(temp.GetBuffer(pCFile.GetLength()), pCFile.GetLength()); temp.ReleaseBuffer();dgx=temp;pCFile.Close();}return TRUE; }看一下lpszPathName變量中,已經(jīng)保存了選擇文件的路徑;這是由框架傳過(guò)來(lái)的,可以直接使用;
然后在視類OnDraw函數(shù),添加在窗口上輸出文字的代碼;完成后如下;
void CTest1View::OnDraw(CDC* pDC) {CTest1Doc* pDoc = GetDocument();ASSERT_VALID(pDoc);// TODO: add draw code for native data herepDC->DrawText(pDoc->dgx,pDoc->dgx.GetAllocLength(),CRect(50,50,500,500),DT_WORDBREAK); }在視類中可以獲取到Doc類的成員變量pDoc->dgx的內(nèi)容;然后顯示;
在磁盤上新建一個(gè)測(cè)試文本,錄入一首詩(shī)歌;
然后運(yùn)行程序,打開(kāi)測(cè)試文本;打開(kāi),即會(huì)顯示;
視類的基本使用,可參閱
https://blog.csdn.net/bcbobo21cn/article/details/88097135
框架類、文檔類、視圖類的關(guān)系,等內(nèi)容,參閱相關(guān)資料;
總結(jié)
以上是生活随笔為你收集整理的VC++ 单文档项目显示打开的文件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: VC++多文档实例编程分析
- 下一篇: Asp.Net Session学习总结