2009-06-07 13 views
18

Esta es mi primera aplicación MFC lejos de VC6, y me siento un poco estúpido:VS 2008, MFC: agregue OnInitDialog, ¿cómo?

¿Cómo agrego el controlador OnInitDialog? (Sé cómo agregarlo manualmente, pero eso es un problema a largo plazo).

haciendo doble clic en el cuadro de diálogo - nada. haga clic derecho en el cuadro de diálogo - "Agregar controlador de eventos" está deshabilitado. Propiedades - Mensajes tiene mensajes "normales", pero no WM_INITDIALOG Propiedades - Eventos sólo posee las notificaciones de los controles contenidos clic derecho en vista de clase - "Agregar .." sólo tiene funciones y variables

arañazos dirigen

[editar] d'oh - es una función virtual en MFC, pero aún así ...

Respuesta

32

no se sienta estúpida, me tomó por siempre para resolver esto cuando me mudé de VC6 a VS2008!

De todos modos, y también para mi propia referencia, aquí están los pasos completos para añadir un cuadro de diálogo y reemplazando el método OnInitDialog:

  1. Seleccionar Vista de recursos y expandir el archivo .rc.
  2. Haga clic con el botón derecho en la entrada Dialog en la vista de árbol y seleccione Insertar diálogo.
  3. Seleccione la ventana Propiedades. (Nota: Si no ve esta ventana, seleccione la Ver>Otras ventanas>ventana de propiedades de elemento menú.)
  4. En los Propiedades ventana, establecer el ID para el diálogo, por ejemplo, IDD_MYDIALOG.
  5. Haga clic con el botón derecho en el cuadro de diálogo en el editor de recursos y seleccione Agregar clase. Nota: si tiene IE8 instalado, esto puede producir un error de secuencia de comandos de Internet Explorer. Consulte this blog post para obtener detalles sobre cómo corregir esto.
  6. En el cuadro de diálogo Asistente de clase MFC, introduzca el nombre de la clase, por ejemplo, CMyDialog, seleccione CDialog como la clase base, a continuación, pulse Finalizar. Esto creará archivos llamados MyDialog.cpp y MyDialog.h y los agregará a su proyecto.

reemplazar el método OnInitDialog en la clase CMyDialog:

  1. Abrir el archivo MyDialog.h.
  2. Seleccione la ventana Propiedades.
  3. Coloque el cursor en la línea que dice class CMyDialog : public CDialog.(La parte superior de la ventana Propiedades debe mostrar "CMyDialog VCCodeClass." - esto es importante, porque los Propiedades ventana es altamente sensible al contexto, y usted tiene diferentes opciones dependiendo de la posición del cursor en el editor)
  4. Haga clic en el icono Invalida en la ventana Propiedades.
  5. Desplácese por la ventana de propiedades para buscar OnInitDialog.
  6. Haga clic en la flecha hacia abajo de esta entrada y seleccione <Agregar> OnInitDialog. Esto debería crear su función CMyDialog::OnInitDialog.

Espero que esto ayude!

+0

Solo quería mencionar que esto me eludió durante mucho tiempo también después de migrar a VS2008 desde VC6. Puede tomar un tiempo acostumbrarse. – adzm

+0

¡Lo encontré! :-D Siempre es útil saber que no está solo. – peterchen

1

Parece que ni siquiera tiene que abrir el archivo de encabezado y perder el tiempo colocando el cursor ... Después de crear la clase, seleccione la clase en el panel ClassView y puede cambiar las anulaciones/mensajes/eventos en la propiedad panel como se describe arriba.

+1

¿Qué significa esto para agregar a la respuesta aceptada? – EWit

+1

Porque no es necesario abrir el archivo de encabezado y perder el tiempo colocando el cursor en la línea de código correcta para que el panel de propiedades se visualice correctamente. – wayne

Cuestiones relacionadas