Problemas al abrir un dialogo modal
Hola, vereis tengo un problemilla; He creado un dialogo modal, y quiero que al pulsar sobre una linea de un menu (como los tipicos de arriba de Archivo, Edicion...) pues me aparezca este dialogo; Lo he hecho muchas veces sin ningun problema; Escribiendo la funcion en la funcion C.....View, o en CMainFrame; Ahora bien, yo quiero escribirla en una clase que he creado yo derivada de CFormView, pero al crear la funcion e implementarla como siempre, luego no se me activa el texto que al pulsarlo me sale la ventana; Y por que no puedo hacerlo como siempre??? porque me da un error:
cannot convert parameter 1 from 'class CMainFrame *const ' to 'class CMiFuncion *'
Por que no se me activa para llamar a la ventana????? Es que necesito otra funcion????? Gracias, y si se os ocurre lo ke sea decirmelo;
void CMiFuncion::OnInsertartexto()
{
CInsertarTexto DlgTexto(this);
DlgTexto.DoModal();
}
Asi es como llamo para que salga el dialogo; Y no se me activa lo que esta asociado a esta funcion
cannot convert parameter 1 from 'class CMainFrame *const ' to 'class CMiFuncion *'
Por que no se me activa para llamar a la ventana????? Es que necesito otra funcion????? Gracias, y si se os ocurre lo ke sea decirmelo;
void CMiFuncion::OnInsertartexto()
{
CInsertarTexto DlgTexto(this);
DlgTexto.DoModal();
}
Asi es como llamo para que salga el dialogo; Y no se me activa lo que esta asociado a esta funcion
Creo que el problema está en el parámetro "this" que le estás pasando a la función. Al usar este parámetro desde tu clase, lo que estás pasando es exactamente eso, la dirección de CMiFuncion mientras que espera algo de tipo CMainFrame .
Tienes que usar el constructor de tu clase para recibir el puntero de tu clase principal
//declárate en tu clase
//CTuclaseView es el nombre de tu clase principal.
CTuclaseView *m_pvp;
CMiFuncion ::CMiFuncion (CWnd* pParent /*=NULL*/)
{
m_pvp = (CTuclaseView *) pParent;
}
void CMiFuncion::OnInsertartexto()
{
CInsertarTexto DlgTexto(m_pvp);
DlgTexto.DoModal();
}
El objeto a tu clase lo tienes que hacer en CTuclaseView, pasándole, ahora sí, el puntero this.
