Re: How do I return variables to main dialog



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();
}
.



Relevant Pages

  • Re: How do I return variables to main dialog
    ... you pass in a pointer to a method in the parent dialog and it ... That class will open and read the full contents of the selected file. ... MVP Tips:http://www.flounder.com/mvp_tips.htm- Ocultar texto de la cita - ... The dialog calls a member of another class (CFileProc) to read a file. ...
    (microsoft.public.vc.mfc)
  • Re: Login scripts based on Organisational Units
    ... Dim strOUPath, arrContainers, arrOU, strOU ... ' Retrieve DN of parent OU/Container. ... ' Replace any escaped commas with Chr. ... ' Parse Parent DN into comma delimited components. ...
    (microsoft.public.windows.server.general)
  • Re: Login scripts based on Organisational Units
    ... ' Retrieve DN of parent OU/Container. ... ' Replace any escaped commas with Chr. ... ' Parse Parent DN into comma delimited components. ... whereas a script based on group membership may be ...
    (microsoft.public.windows.server.general)
  • Re: if user in OU=Managers then...
    ... Their user object resides in a container or OU, ... Parse the Distinguished Name of the user for the DN of the parent ... retrieve the AdsPath of the parent container/OU. ... ' Retrieve AdsPath of parent container/OU. ...
    (microsoft.public.scripting.vbscript)
  • Re: The best way to traverse a tree
    ... >>> would allow you to retrieve all comments in one query in the correct ... >> And since he has a comment system, insertion could be very often. ... comment (TEXT or VARCHAR) ... The trick would be in the `parent` field. ...
    (alt.php)