Confusión en la programación de VC: cuadro de mensajes
void COpertateDlg::OnStart()
{COpertateDlg *a= nuevo COpertateDlg
a-gt (); > MessageBox( "shishi!", NULL, MB_OK);
}
COpertateDlg *a= new COpertateDlg
Porque lo escribiste así. Luego, cuando llama a la función OnStart, no está llamando a la función miembro del cuadro de diálogo en sí, sino que está creando un nuevo cuadro de diálogo y llamando a la función miembro del nuevo cuadro de diálogo. Pero la última oración MessageBox llama a la función miembro de este cuadro de diálogo. Dado que las funciones Crear y Mostrar ventana no se utilizan para mostrar el nuevo cuadro de diálogo, no puede ver el nuevo cuadro de diálogo, pero también está centrado en relación con el escritorio, por lo que el cuadro de mensaje llamado en shishi estará centrado en relación con el escritorio.
No sucederá si lo escribes así:
void COpertateDlg::OnStart()
{
shishi ( );
MessageBox( "shishi!", NULL, MB_OK
}
void COpertateDlg::shishi()
{
Cuadro de mensaje( "¡shishi!", NULL, MB_OK
}
);