Solved

document with dialogs

Posted on 2000-04-16
8
164 Views
Last Modified: 2013-11-20
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
Comment
Question by:Edy1988
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 2
  • 2
8 Comments
 
LVL 3

Accepted Solution

by:
GlennDean earned 50 total points
ID: 2720490
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
 

Author Comment

by:Edy1988
ID: 2721540
But the GetActiveDocument is a FrameWnd method, how can i use it from the view?
0
 
LVL 3

Expert Comment

by:GlennDean
ID: 2723303
Hi Edy1988:
   Call the View's GetDocument function.
   Glenn
0
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!

 

Expert Comment

by:degarn
ID: 2723373
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
 

Expert Comment

by:degarn
ID: 2725654
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
 

Author Comment

by:Edy1988
ID: 2725683
degarn!
Had you posted your answer as answer and not as comment,i might have given you the points
Eyal
0
 

Expert Comment

by:degarn
ID: 2725955
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
 

Expert Comment

by:degarn
ID: 2725960
>>to the same answer I gave !
Sorry...
0

Featured Post

Enroll in June's Course of the Month

June's Course of the Month is now available! Every 10 seconds, a consumer gets hit with ransomware. Refresh your knowledge of ransomware best practices by enrolling in this month's complimentary course for Premium Members, Team Accounts, and Qualified Experts.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction: Load and Save to file, Document-View interaction inside the SDI. Continuing from the second article about sudoku.   Open the project in visual studio. From the class view select CSudokuDoc and double click to open the header …
Introduction: The undo support, implementing a stack. Continuing from the eigth article about sudoku.   We need a mechanism to keep track of the digits entered so as to implement an undo mechanism.  This should be a ‘Last In First Out’ collec…
This video will show you how to get GIT to work in Eclipse.   It will walk you through how to install the EGit plugin in eclipse and how to checkout an existing repository.
There are cases when e.g. an IT administrator wants to have full access and view into selected mailboxes on Exchange server, directly from his own email account in Outlook or Outlook Web Access. This proves useful when for example administrator want…

728 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question