Как узнать, был ли создан / инициализирован диалог MFC? - PullRequest
8 голосов
/ 04 июня 2010

В моем диалоговом классе есть обработчик OnMove, который делает некоторые вещи с объектами управления (например, CButton). Я обнаружил, что этот обработчик вызывается до вызова метода OnInitDialog в диалоговом окне, и, следовательно, когда я пытаюсь вызвать методы дочерних элементов управления, я получаю ASSERTS в отладке, так как элементы управления еще не существуют ... они создаются в OnInitDialog .

Есть две вещи, которые я хотел бы проверить:

  1. Как узнать, что диалог инициализирован?
  2. Как проверить, создано ли отдельное окно объекта управления CWnd?

В обоих случаях я ищу членов класса или результаты вызова метода, которые можно использовать.

1 Ответ

7 голосов
/ 04 июня 2010
  1. Установить флаг в OnInitDialog

  2. Используйте диалоги m_hWnd:

    if ( ::IsWindow(m_Ctrl.m_hWnd) ) {
        ...
    }
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...