Tengo un controlador OnMove en mi clase de diálogo, que hace algunas cosas con objetos de control (es decir, un comando). Me parece que se llama a este controlador antes de que se llame al método de diálogo OnInitDialog y, por lo tanto, cuando intento llamar a los métodos en los controles secundarios, obtengo ASSERTS en la depuración ya que los controles aún no existen ... se crean en OnInitDialog .¿Cómo saber si se ha creado/inicializado un cuadro de diálogo de MFC?
Hay dos cosas que me gustaría ser capaz de verificar:
- ¿Cómo le digo el cuadro de diálogo se ha inicializado?
- ¿Cómo verifico que se ha creado una ventana de objeto de control CWnd individual?
En ambos casos, estoy buscando miembros de la clase o resultados de llamadas a métodos que se puedan utilizar.
no quiero escribir código personalizado, por lo que parece preferible 2. ¿Hay algún otro miembro que pueda probar? –
GetSafeHwnd() pero es solo un contenedor alrededor de :: IsWindow(). En términos de orientación a objetos, supongo que es mejor que consultar manualmente el controlador: me gusta el control de "bajo nivel" de la inspección del mango, personalmente. – Roel
'GetSafeHwnd()' no es un contenedor alrededor de 'IsWindow()' - es un contenedor alrededor de 'm_hWnd' - no estándar C++ para comprobar si' this' es nulo, y devolver 'm_hWnd' o' null'. 'm_hWnd' puede ser no nulo sin ser una ventana (al igual que un identificador de archivo no puede ser nulo, pero el archivo se cierra) – Mordachai