Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to tell if a MFC Dialog has been created/initialized?

Tags:

c++

winapi

mfc

I have an OnMove handler in my dialog class, which does some stuff with control objects (i.e a CButton). I'm finding this handler gets called before the dialog OnInitDialog method is called, and hence when I try to call methods on the child controls, I get ASSERTS in debug as the controls don't yet exist... they are created in OnInitDialog.

There's two things I'd like to be able to check:

  1. How do I tell the dialog has been initialized?
  2. How do I check an individual CWnd control object's window has been created?

In both cases I'm looking for class members or method call results that can be used.

like image 906
Mr. Boy Avatar asked Jun 04 '10 11:06

Mr. Boy


1 Answers

  1. Set a flag in OnInitDialog

  2. Use your dialog's m_hWnd:

    if ( ::IsWindow(m_Ctrl.m_hWnd) ) {
        ...
    }
    
like image 135
Roel Avatar answered Oct 10 '22 02:10

Roel