• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 169
  • Last Modified:

document with dialogs

I have dialogbox in the view(dial1), now dial1 calls another dialogbox(dial2)
I want that this dialogboxes will update the Document's variable(not hte view's variable).
How do i do it?
Eyal
0
Edy1988
Asked:
Edy1988
  • 4
  • 2
  • 2
1 Solution
 
GlennDeanCommented:
Hi:
   Have your dialog have a member variable say
  CMyDoc * pDoc;
Before your view creates the dialog, call it myDlg, write
CMyDoc * pDoc = (CMyDoc *)GetActiveDocument();
myDlg.pDoc=pDoc;
//Spin the dialog up, say via DoModal

Then, in the dialog, it has access to the document's variables.
   Glenn
0
 
Edy1988Author Commented:
But the GetActiveDocument is a FrameWnd method, how can i use it from the view?
0
 
GlennDeanCommented:
Hi Edy1988:
   Call the View's GetDocument function.
   Glenn
0
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 
degarnCommented:
The view has also a specific member function which links it to its related view :
CDocument* GetDocument();

Well, now, if your document is specialized, I mean if you've added specific member variables in it that you want to acces from your dialogs, you 've got to ways to process :

1) Use casting :
dial1 aDlg;
CMyappDoc* pDoc=(CMyAppDoc*)pmyAppView->GetDocument();
aDlg.m_pDoc=pDoc; //where m_pDoc is declared CMyAppDoc* m_pDoc in dial1

2) Create a member function in your view :
CMyAppDoc* CMyAppView::GetMyAppDoc()
{
       return (CMyAppDoc*)GetDocument();
}

And then use the same member variable in your dialog that was offered by GlennDean :
//Place this code in your view
dial1 aDlg;
aDlg.m_pDoc=GetMyAppDoc();

Btw, a good thing would be to override your dialog's constructor to give them the doc pointer :

dial1 aDlg(GetMyAppDoc());

Hope this help...
Arn.
0
 
degarnCommented:
Well, my comment seems upset now, but i promess when I began to write it, GlennDean's comment wasn't added yet !
I'll be faster the next time ...
0
 
Edy1988Author Commented:
degarn!
Had you posted your answer as answer and not as comment,i might have given you the points
Eyal
0
 
degarnCommented:
Hi Edy,
when a question was answered once, it's placed in the list of locked questions that had received answers and have to be evaluated by asker. Then it's impossible to give it another answer till the asker accepts or rejects the proposed answer. When you answer a question in that list, you can only post comments and so you take the risk not receiving the related points.
Btw, I'm sure GlennDean would finally have arrived to the same answer a gave !
Well, I'm happy my answer was useful...
0
 
degarnCommented:
>>to the same answer I gave !
Sorry...
0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

  • 4
  • 2
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now