Dialog-Based App and Main Dialog Problem 
Author Message
 Dialog-Based App and Main Dialog Problem

I am developing dialog-based app.

In my app's InitInstance(), I have to declare an instance of the MAIN
dialog and assign its address to m_pMainWnd.  The problem is since MAIN
dialog is local to this function, how do I access it from somewhere else?
I tried to declare  the MAIN dialog as global (even a member function of
the app class), I get ASSERTION failure such as below

{ ASSERT(afxCurrentResourceHandle() != NULL
                return afxCurrentResourceHandle; }

How do resolve this?  Please help.

Giang

////////////////////////////////////////////////////////////////////////////
/
// CTRORApp initialization

BOOL CTRORApp::InitInstance()
{
        // Standard initialization
        // If you are not using these features and wish to reduce the size
        //  of your final executable, you should remove from the following
        //  the specific initialization routines you do not need.

#ifdef _AFXDLL
        Enable3dControls();             // Call this when using MFC in a shared DLL
#else
        Enable3dControlsStatic();       // Call this when linking to MFC statically
#endif

    MAINDlg MainDialog;
    m_pMainWnd = &MainDialog;

    if(MainDialog.DoModal() == IDCANCEL)
    {  
        ;
    }

        // Since the dialog has been closed, return FALSE so that we exit the
        //  application, rather than start the application's message pump.
        return FALSE;

Quote:
}



Mon, 22 Nov 1999 03:00:00 GMT  
 Dialog-Based App and Main Dialog Problem

Hello Giang,

     Try the following :

          MAINDlg* pDlg = (MAINDlg*)AfxGetApp()->m_pMainWnd;

     Now you can access the MAIN dialog through the pointer pDlg.

     Good luck.



Quote:
> I am developing dialog-based app.

> In my app's InitInstance(), I have to declare an instance of the MAIN
> dialog and assign its address to m_pMainWnd.  The problem is since MAIN
> dialog is local to this function, how do I access it from somewhere else?
> I tried to declare  the MAIN dialog as global (even a member function of
> the app class), I get ASSERTION failure such as below

> { ASSERT(afxCurrentResourceHandle() != NULL
>                 return afxCurrentResourceHandle; }

> How do resolve this?  Please help.

> Giang

////////////////////////////////////////////////////////////////////////////

- Show quoted text -

Quote:
> /
> // CTRORApp initialization

> BOOL CTRORApp::InitInstance()
> {
>    // Standard initialization
>    // If you are not using these features and wish to reduce the size
>    //  of your final executable, you should remove from the following
>    //  the specific initialization routines you do not need.

> #ifdef _AFXDLL
>    Enable3dControls();             // Call this when using MFC in a shared DLL
> #else
>    Enable3dControlsStatic();       // Call this when linking to MFC statically
> #endif

>     MAINDlg MainDialog;
>     m_pMainWnd = &MainDialog;

>     if(MainDialog.DoModal() == IDCANCEL)
>     {      
>    ;
>     }

>    // Since the dialog has been closed, return FALSE so that we exit the
>    //  application, rather than start the application's message pump.
>    return FALSE;
> }



Mon, 22 Nov 1999 03:00:00 GMT  
 
 [ 2 post ] 

 Relevant Pages 

1. PBM: Message box not displayed after main dialog box is closed in MFC dialog-based app

2. dialog based mfc app that starts without showing the main window

3. Dialog app without main dialog

4. Main dialog initially hidden, how? (mfc dialog app)

5. Modeless dialog in a dialog-based app

6. dialog within dialog based apps

7. Showing taskbar visible dialog from dialog based app

8. 2nd Dialog never appears in Dialog based app

9. Dialog-based app and modal dialog

10. HOWTO: hide dialog when a dialog-based app starts

11. dialog based app making modeless dialogs

12. Destroy Dialog for Dialog based app

 

 
Powered by phpBB® Forum Software