Foros del Web » Programación para mayores de 30 ;) » Programación General »

Ayuda!!!! error sin sentido!!!!!

Estas en el tema de Ayuda!!!! error sin sentido!!!!! en el foro de Programación General en Foros del Web. Hola, tengo una aplicacion en la que cuando pulso un boton de un dialogo, se muestra una ventana (y el dialogo desaparece automaticamente). El PROBLEMA ...
  #1 (permalink)  
Antiguo 06/03/2004, 05:47
 
Fecha de Ingreso: marzo-2004
Mensajes: 96
Antigüedad: 20 años, 8 meses
Puntos: 0
Ayuda!!!! error sin sentido!!!!!

Hola,
tengo una aplicacion en la que cuando pulso un boton de un dialogo, se muestra una ventana (y el dialogo desaparece automaticamente).
El PROBLEMA surge cuando le pongo un CDialogBar porque al ejecutar la aplicacion me daba errores en la linea 229 de winhand.cpp sobre todo.

Probe a crear la clase para el DialogBar en XP (hasta ahora lo estaba haciendo en Windows 98) y todo funcionaba correctamente, incluso cuando lo compilaba y ejecutaba en el 98.

Ahora estoy poniendole imagenes a los botones de la DialogBar con CBitmapButton y me da el mismo error tanto si lo hago en W98 como en WXP.

No se si tendra que ver con el dialogo desde el cual llamo a la nueva ventana, ¿tengo que poner codigo para destruirlo? ¿como? (El cuadro de dialogo es modal)

Para crear la nueva ventana hacia:

//extern MiVentana* m_pmiventana; en MiVentana.h
//y hago m_pmiventana=NULL en el constructor de MainFrame.cpp

//En OnOk del dialogo:
if (m_pmiventana == NULL)
{
m_pmiventana = new MiVentana;
m_pmiventana->Create(NULL, "Mi ventana\0");
CDialog::OnOk(); //codigo generado por VC++
}

//MiVentana.cpp (y no la destruyo ni pongo a NULL en cualquier otro sitio)
//¿es lo correcto?????????
MiVentana::~MiVentana()
{
m_pMiVentana->DestroyWindow();
m_pMiVentana = NULL;
}

En MiVentana.cpp he añadido con classwizard OnCreate como respuesta a WM_CREATE.
int MiVentana::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CMDIChildWnd::OnCreate(lpCreateStruct) == -1)
return -1;

if (!m_dlgbar.Create(this,IDD_REPRODBAR,CBRS_BOTTOM, IDD_REPRODBAR))
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
}
return 0;
}

//En Miventana.h:
protected:
Cmydialogbar m_dlgbar; //mydialogbar es la clase creada para
//CDialogBar

//En Cmydialogbar.cpp
mydlgbar::mydlgbar()
{
if (!stopp.LoadBitmaps(IDB_STOP, IDB_STOPD, IDB_STOP) ||
!play.LoadBitmaps(IDB_PLAY, IDB_PLAYD, IDB_PLAY))
{
TRACE0("Failed to load bitmaps for buttons\n");
AfxThrowResourceException();
}
}
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:32.