C/Visual C - No puedo insertar dialogo(novato)

 
Vista:

No puedo insertar dialogo(novato)

Publicado por maria (2 intervenciones) el 05/10/2005 12:43:40
Hola!
Es el primer día que intento programar en Visual C++ y estoy liado.He leido y releido una ayuda que encontré pero no se como hacerlo o que es lo que hago mal.
Mi problema es el siguiente:
1.Creo un proyecto(File->New->Win 32 Application)
2.Aqui tomo "A simple 32 application"
3.Project->Settings(para añadir referencias a dll),elijo "USE MFC in a shared DLL"
4.Ahora quiero insertar un dialogo que será el que salga cuando mi aplicación se ejecute.
Insert->Resource->Dialog->New .Salvo el objeto en la carpeta donde tengo el projecto.
5.Añado el anterior fichero al projecto.
6.Ahora hago lo siguiente:
View->CllassWizard
y apartir de que aqui ya no se como seguir.
Por favor ¿alguien me puede ayudar?
Que torpe soy.No me entero de nada.
Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:No puedo insertar dialogo(novato)

Publicado por fernando.gomez (1603 intervenciones) el 05/10/2005 22:42:39
Mmm... no sé cómo se usa el Class Wizard, ODIO el class wizard. Pero para crear tu diálogo, basta que derives una clase de CDialog. El recurso que creaste se lo pasas al constructor del padre. Así, si el recurso se llama IDD_DIALOG1, pues haces algo como:

class CMiDialogo : public CDialog
{
protected:
DECLARE_MESSAGE_MAP();

public:
CMiDialogo(CWnd* pPadre) : CDialog(IDD_DIALOG1, pPadre)
{
// inicia tu objeto aquí
}

Para procesar cuando se inica tu diálogo, sobreescribes OnInitDialog:

int OnInitDialog()
{
CDialog::OnInitDialog();
//aquí procesa el inicio del diálogo
return TRUE;
}

para procesar cuando pulsan un OK o un CANCEL, sobreescribes OnOK y OnCancel.

Para cerrar un diálogo modal, empleas EndDialog(EXIT_SUCCESS) o EndDialog(EXIT_FAILURE) para indicar que todo estuvo bien o no. Si el diálogo no es modal, lo cierras como cualquier otra ventana.

Entonces ya que tienes tu clase, sólo la tienes que mandar llamar. Por ejemplo, supongamos que OnShowDialog1 es una función que responde a algún evento dentro de tu ventana MainFrame. Entonces:

void CMiMainFrame::OnShowDialog1()
{
CMyDialogo wndDlg(this);
wndDlg.DoModal();
}

y ya. Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar