如何判断是否已创建/初始化MFC对话框?

时间:2010-06-04 11:00:57

标签: c++ mfc winapi

我的对话框类中有一个OnMove处理程序,它使用控件对象(即CButton)执行一些操作。我发现在调用对话框OnInitDialog方法之前调用此处理程序,因此当我尝试在子控件上调用方法时,我在调试中获得ASSERTS,因为控件尚不存在...它们是在OnInitDialog中创建的

我希望能够检查两件事:

  1. 如何判断对话框已初始化?
  2. 如何检查单个CWnd控件对象的窗口是否已创建?
  3. 在这两种情况下,我都在寻找可以使用的类成员或方法调用结果。

1 个答案:

答案 0 :(得分:7)

  1. OnInitDialog

  2. 中设置一个标记
  3. 使用对话框的m_hWnd

    if ( ::IsWindow(m_Ctrl.m_hWnd) ) {
        ...
    }