Re: Opening new document in existing Window
The thread I sent you to uses the same doc for the new view. Since you are
going to be creating a new document for the view you should create the doc
in the CreateView method:
void CMainFrame::CreateView1(const CRect &Rect)
{
CDocument1 *pDoc = new CDocument1(...);
CMyApp::m_pMyViewTemplate->AddDocument(pDoc);
CFrameWnd* FrameWnd = CMyApp::m_pMyView1Template->CreateNewFrame(pDoc
,NULL);
if (FrameWnd)
{
FrameWnd->InitialUpdateFrame(NULL,TRUE);
FrameWnd->SetFocus();
FrameWnd->SetWindowPos(NULL,Rect.left,Rect.top,Rect.Width(),Rect.Height(),S?WP_NOZORDER);
}
}
I also forgot to mention in the other post that I would make the
CMultiDocTemplate objects in CWinApp derived class static, that way you can
easily access them from the CMainFrame class, or whereever you want to put
your view creation methods.
AliR.
"abhivg" <abhi.vg@gmail.com> wrote in message
news:abe8f8ac-77f8-4d40-b8cb-5cebd17a91ca@u16g2000pru.googlegroups.com...
Thanks for replying.The tabbed view idea seems good, but not sure it
would go with the requirements, will have to check.
Regarding, destroying the view and creating new one in place, the
issue here is that every doc type also has a framewnd associated with
it. So some doc types require framewnd havin single splitter, some
require framewnds having 2 splitters etc.So, not sure how to achieve
this by just changing the view of the current child window.
On Aug 20, 7:26 pm, "AliR" <A...@online.nospam> wrote:
Two things come to mind one is a tabbed view, where all you doc types for
a
particular date are listed in the tabs.
The other is to only have one Template with a view that is going to act
as a
container. When the doc type is switched, it simply destroys the current
child view in it and creates another one. The way I would implement this
would be to tell the CDocument object that the doc type that the user
wants
to view has changed, CMyDocument::SetDocType(DocType docType);
The SetDocType method will save the doc type and calls UpdateAllViews.
The
container view overrides the OnUpdate and checks the doc type against its
current doc type, and if different destroys the current view and creates
the
new one.
But I must say the Tabbed view is more appealing.
AliR.
"abhivg" <abhi...@gmail.com> wrote in message
news:bb6e90b2-1850-4122-8264-ea114cc5440f@u16g2000pru.googlegroups.com...
Hi,
I have a MDI app with multiple document templates added in it. So
there is a hierarchy of document, view and framewindow classes such
that a view, document and framewnd classes are associated through a
templates.
Now, there are date-wise files for each document type, i.e for a
particular date, there are as many files as there are doc types.
Opening a document opens it in a child window
What I want to implement is to add a drop down list to the child
window which will list the other document types for that date.
Selecting a different doc type from drop down should
1. Close the existing document open in the child window
2. Open the new doc of selected type for current date in the existing
child window and NOT in a new child window.
I want to know if this is possible and how to go about it. I am
getting confused because I am not able to figure out how this will
work because I am trying to retain the old child window, which is of a
particular framewnd class and open a totally new document type in this
window, with which it is not associated through any doc template.
Hope I have explained my problem. Any inputs will be highly
appreciated.
Thanks in advance.
Abhi