Re: How do I return variables to main dialog
- From: Mikel <mikel.luri@xxxxxxxxx>
- Date: Mon, 28 Mar 2011 09:56:25 -0700 (PDT)
On 28 mar, 18:35, Joseph M. Newcomer <newco...@xxxxxxxxxxxx> wrote:
Note that you cannot retrieve information from the *controls* after the dialog completes;
there are a couple different styles you *can* use.
(1) store anything you want in a CArray.std::vector/CMap/std::map/whatever which is in the
secondary dialog; provide an interface by which the caller can retrieve it
(2) SendMessage to a parent window containing information of interest
(3) Use a callback method; you pass in a pointer to a method in the parent dialog and it
is called each time something needs to be sent to the parent
The first one is the best choice if you need to retrieve information only *after* the
dialog has completed
The second one is the best choice if you can deal with the information incrementally, but
then note that if you click "cancel" you have to deal with "undoing" any changes you made
The third choice is the worst choice, because it has all the disadvantages of the second
method but is far clumsier to use
Note that I did not suggest any mechanism by which you #include the parent dialog header
file in the child dialog and call methods of the parent dialog. This would be just wrong.
joe
On Mon, 28 Mar 2011 08:21:46 -0700 (PDT), Mikel <mikel.l...@xxxxxxxxx> wrote:
On 28 mar, 16:58, Ed <m...@xxxxxxxxx> wrote:
In my main dialog, when the user clicks on a file in the ListBox window
I pass that filename to another class to open it.
That class will open and read the full contents of the selected file.
I wish this class to return variables from the file it read to the main
Dialog.
I need to return parts of what it found within the file.
Exampls: A keyword found within the file.
How do I do this?
Partial code below:
----------------------------------------------------------------
CFileProcess FProc; // FileProcess is class to read the file selected
void CMyDlg::OnSelchangeListcip()
{
//... code for selected file
FProc.Readit(Name); //Name is the filename of the selected
//Reatit is the routine in FileProcess that opens and reads the file
//more routines are going to be added to the FileProcess class
//... code to work on returned variables
}- Ocultar texto de la cita -
- Mostrar texto de la cita -
You could just add GetX functions to your CFileProcess class and call
them after you've read the file.
Just like what you'd do with CFileDialog to know the selected file
(e.g. CFileDialog::GetPathName())
Joseph M. Newcomer [MVP]
email: newco...@xxxxxxxxxxxx
Web:http://www.flounder.com
MVP Tips:http://www.flounder.com/mvp_tips.htm- Ocultar texto de la cita -
- Mostrar texto de la cita -
Joe, either you or I have misunderstood the OP's requirements. Or I
have misunderstood your answer.
What I understand the OP wants is this:
The dialog calls a member of another class (CFileProc) to read a file.
After reading the file, some information that was in the file (and
CFileProc has read) has to go to the dialog
What I would do (in MyDlg.cpp):
#include "FileProcess.h"
void CMyDlg::OnSelchangeListcip()
{
//... code for selected file
// The OP has put the following line outsid OnSelChange...
// Without more info, I would put it here.
CFileProcess FProc; // FileProcess is class to read the file
selected
FProc.Readit(Name); //Name is the filename of the selected
...
//... code to work on returned variables
x = FProc.GetX();
y = FProc.GetY();
FunctionThatUsesZ(FProc.GetZ());
}
As I said, just like CFileDialog:
CFileDialog dlg(...);
if(dlg.DoModal() == IDOK)
{
CString mypath = dlg.GetPathName();
}
.
- Follow-Ups:
- Re: How do I return variables to main dialog
- From: Joseph M . Newcomer
- Re: How do I return variables to main dialog
- References:
- How do I return variables to main dialog
- From: Ed
- Re: How do I return variables to main dialog
- From: Mikel
- Re: How do I return variables to main dialog
- From: Joseph M . Newcomer
- How do I return variables to main dialog
- Prev by Date: Re: How do I return variables to main dialog
- Next by Date: int to ascii
- Previous by thread: Re: How do I return variables to main dialog
- Next by thread: Re: How do I return variables to main dialog
- Index(es):
Relevant Pages
|