Ⅰ mfc多文檔多視圖問題
MFC多文檔框架MDI已經做好了多視圖打開的基礎邏輯。
你只需要在雙擊(具體哪裡你沒描述,假設是一個列表什麼的)響應中:
AfxGetApp()->OpenDocumentFile(strFileName);
即可觸發打開文件操作,並新建一個視圖窗口。
在文檔類中,重載OnOpenDocument函數(通過ClassWizard),並在這里加入打開文件的處理即可。
最後就是顯示了,根據文檔類中的圖片數據,在OnDraw中顯示。
Ⅱ MFC 多文檔程序(MDI - Doument\view) 編程實例或者教程
孫鑫的VC++深入詳解,這本書基本都是講文檔操作的。
Ⅲ visual studio MFC編程中,創建了一個多文檔應用程序,如何給左側的文檔視圖節點添加雙擊和右擊事件呢
根據你的描述,不知道你現在的具體情況。
但是應該有如下方法:你說的文檔視圖是個DockPane,你新建一個多文檔工程,你可以看到對應的"文檔視圖"類,它裡面有創建其子窗口的代碼,大概會有個CViewTree的類,派生自CTreeCtrl
所以,你可以為這個類添加事件:雙擊和右鍵單擊的。
而右鍵菜單,可以添加OnContextMenu,在裡面彈出右鍵菜單即可,具體菜單消息處理,就看你自己的了,為菜單項添加事件處理程序。
Ⅳ 關於c++編程。。。。。多文檔視圖。。。。。。
void CMy3View::OnDraw(CDC* /*pDC*/)
改成
void CMy3View::OnDraw(CDC* pDC)
Ⅳ 多文檔編程vc,我想在CMainFrame上畫 主界面,初始化只顯示主界面,不打開任何視圖,不知怎麼實現
在App類的InitInstance()函數裡面找到
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);
然後加上下面一句代碼就可以了
cmdInfo.m_nShellCommand=CCommandLineInfo::FileNothing; //不創建新文檔
Ⅵ vc++多文檔視圖怎麼重寫bool cdocument:savemodified
MFC引入了"文檔/視圖"結構的概念,理解這個結構是編寫基於MFC編寫復雜Visual C++程序的關鍵。"文檔/視圖"中主要涉及到四種類:
(1)文檔模板:
class CDocTemplate; // template for document creation
class CSingleDocTemplate; // SDI support
class CMultiDocTemplate; // MDI support
(2)文檔:
class CDocument; // main document abstraction
(3)視圖:
// views on a document
class CView; // a view on a document
class CScrollView; // a scrolling view
(4)框架窗口:
// frame windows
class CFrameWnd; // standard SDI frame
class CMDIFrameWnd; // standard MDI frame
class CMDIChildWnd; // standard MDI child
class CMiniFrameWnd; // half-height caption frame wnd
理解了這4個類各自的意義及它們縱橫交錯的關系也就理解了"文檔/視圖"結構的基本概念,在此基礎上,我們還需要進一步研究"文檔/視圖"結構的MFC程序消息流動的方向,這樣就完全徹底明白了基於"文檔/視圖"結構MFC程序的"生死因果"。
出於以上考慮,本文這樣組織了各次連載的內容:
第1次連載進行基本概念的介紹,第2~5次連載分別講述文檔模板、文檔、視圖和框架窗口四個類的功能和主要函數,連載6則綜合闡述四個類之間的關系,接著以連載7講解消息流動的方向,最後的連載8則以實例剖析連載1~7所講述的所有內容。
Ⅶ 多文檔程序,如何切換視圖
CDocument* pDoc = GetDocument();
CDocTemplate* pTemplate = pDoc->GetDocTemplate();
CDocument* pNewDoc = pTemplate->OpenDocumentFile(NULL);
//然後就可以更新文檔pNewDoc的數據,比如把圖片數據寫到文檔里,
//然後更新視圖,視圖按照文檔繪圖
pNewDoc->UpdateAllViews(NULL);
Ⅷ 如何在MFC單文檔中創建多視圖
基本步驟如下:
1.首先創建一個MFC單文檔應用程序。
2.添加4個MFC類TopLView、BottomLView、TopRView、BottomRView,基類為CView。
3.添加一個MFC類CControlForm,基類為CFormView,對話框ID默認。
4.創建一個切分類,如MySplitter,基類為CSplitterWnd(默認基類選項中無此類,自己添加即可)。
5.在框架類Cmainframe的頭文件中,添加2個MySplitter的變數(因為下面要進行兩次切分操作)。
6.重寫框架類Cmainframe的OnCreateClient函數,如下:
//第一次靜態切分CreateStatic,一行兩列
if (!m_wndSplitter.CreateStatic(this,1,2))
return FALSE;
//第二次靜態切分(將第一次切分後的第二列再分為2*2)及所有的子視圖創建(CreateView函數)。