Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 397
  • Last Modified:

Update a CFormView from CMyDoc

I have a CFromView with three Edit boxes, and when I´ve opened a file using serialize in CMyDoc I would like to update my three variables in CMyView and then update my Window so that it shows my variables. I´m a newbie and are there anybody who knows a good and easy way to do this, I´d appriciate the code written out. Thanx...
0
joakimf
Asked:
joakimf
  • 5
  • 3
  • 2
  • +1
1 Solution
 
Andy_KeysCommented:
The easiest way is to use classwizrd to define variable for each of the edit boxes using the members variable tab

Lets say the variable are called m_Var1,m_Var2,m_Var3
they should be public tby default
so you can use somthing like
 MyView->m_var = xxxx etc etc
The use UpdateData( FALSE ) to transfer data from the variable to the control. UpdateData( TRUE ) will do the oposite when you want to update the variable ready for storing
Hope this at least gets you started
0
 
joakimfAuthor Commented:
I´m sorry I didn´t state my question clear enough I try to be more specific.
I´ve got the variables through ClassWizard but I can´t use them in CMyDoc because I don´t know how to create a pointer to the CMyView class. I´ve tried to set
CMyView* pView=GetFirstView();
pView->m_MyVariable;
It doesn´t work, so I would like some help how to do something like that.
0
 
Andy_KeysCommented:
How have you created CMyView. If its done through a doc template then it should be added to the doc by the framework.  if not when you create the view call pDoc->AddView( pMyView );
Then when you call getFirstview/ Get next view you will have to use the pView->IsKindOf(RUNTIME_CLASS(CMyView) ) to ensure that the ptr is pointing to you class. Then you should be able to set the variable
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.

 
joakimfAuthor Commented:
CMyView was created when I made the project in MFC App Wizard, and one of the problem is that I can´t include CMyView.h in the CMyDoc.cpp file som I don´t reach the CMyView class in CMyDoc when i try to compile I get error saying that the variables are unidentified.
Maybe it wasn´t such an easy question so I´ve increased the points.
0
 
Andy_KeysCommented:
I don't see why you can't include the header file. Post the code
for the Doc and View ( headers as well) as it help ( or just email them to me if you dont want to make them public) keyan01@cai.com
0
 
joakimfAuthor Commented:
Okey, will do as soon as possible..
0
 
danny_pavCommented:
I never have the document access the view directly.  I use CDocument::UpdateAllViews(); and have the view use its GetDocument() and get the data accordingly.
0
 
trestanCommented:
I think I can give you an answer, since I've done it before.
In your CMyDoc.cpp under Serialize function call UpdateAllViews (NULL); after you input the data from the data file. Then in your View, add a function OnUpdate(), in this function add these codes: CMyDoc* pDoc = GetDocument(); input the value to the data member in the View, then call UpdataData();
That's it. Good luck.


0
 
joakimfAuthor Commented:
Thanx for your comment danny_pav, but my real problem is hoe to transfer data from a global variable to my variables in CMyView wich are connected to my edit boxes...
0
 
trestanCommented:
While I am writing the answer, danny_pav provided a similiar comment. I think you declared some variable corresponding to those in CView. Use the pointer *pDoc in View, you can access the variables you declared in CDoc. Try it. There should be no problem.
0
 
joakimfAuthor Commented:
Thanx trestan, it worked perfectly. Enjoy the points....
0

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 5
  • 3
  • 2
  • +1
Tackle projects and never again get stuck behind a technical roadblock.
Join Now