Re: How to add a document to a view
Guys,
sorry it not make sense to you. I knew it was a difficult question to ask.
But had to do the following to get it to work:
BOOL CSystemFrame::Create()
{
ASSERT(mSysDoc == NULL);
// TODO: Add your specialized code here and/or call the base class
CCreateContext context;
context.m_pNewViewClass=RUNTIME_CLASS(CSystemTreeView);
mSysDoc = new CSysDoc();
context.m_pCurrentDoc = mSysDoc;
return CMDIChildWnd::Create(NULL, _T("System Configuration"), WS_CHILD |
WS_VISIBLE | WS_OVERLAPPEDWINDOW,
rectDefault, NULL,&context);
}
And then it all works... So needed to create my own context as this gets
passed into the splitter etc and then i needed to do the following
CView* pView = (CView*)m_wndSplitter.GetPane(0,1);
ASSERT_VALID(pView);
ASSERT_VALID(pView->GetDocument());
pView->SendMessage(WM_INITIALUPDATE);
pView = (CView*)m_wndSplitter.GetPane(0,0);
ASSERT_VALID(pView);
ASSERT_VALID(pView->GetDocument());
pView->SendMessage(WM_INITIALUPDATE);
Inside
BOOL CSystemFrame::OnCreateClient(LPCREATESTRUCT /*lpcs*/, CCreateContext*
pContext)
Hope this makes sense now?
"Joseph M. Newcomer" wrote:
I don't understand. If you have your own MDIChildFrame, that's fine. You would use this
frame class in your document template.
This would be created with the normal mechanisms; you don't have to use a File>New menu
item to create a document, you can just invoke the creation mechanism of the template.
Here's the code I use to do this:
CDocument * CFontExplorerApp::NewItem(CMultiDocTemplate * templ)
{
CDocument * doc = templ->CreateNewDocument();
ASSERT(doc != NULL);
if(doc == NULL)
return NULL;
CFrameWnd * frame = templ->CreateNewFrame(doc, NULL);
if(frame == NULL)
{ /* failed to create */
delete doc;
return NULL;
} /* failed to create */
templ->InitialUpdateFrame(frame, doc, TRUE);
return doc;
} // CFontExplorerApp::NewItem
joe
On Tue, 20 May 2008 05:16:04 -0700, PRMARJORAM <PRMARJORAM@discussions.microsoft.com>
wrote:
How can i manually add my own CDocument derivative to a CView deriative?
I have created my own MDIChildFrame with a splitter a two formviews and want
each to share the same document.
So this document does not get created via the usual file new procedure or
doc template stuff.
I cannot find an easy way to set the document of each view?
Joseph M. Newcomer [MVP]
email: newcomer@flounder.com
Web: http://www.flounder.com
MVP Tips: http://www.flounder.com/mvp_tips.htm