• Sábado 27 de Abril de 2024, 06:26

Autor Tema:  Cerrar Dialogo Mfc  (Leído 2217 veces)

1cacalvo

  • Miembro activo
  • **
  • Mensajes: 30
    • Ver Perfil
Cerrar Dialogo Mfc
« en: Martes 19 de Septiembre de 2006, 13:12 »
0
Tengo un dialogo creado con MFC normal que quiero cambiarle de estilo y evitar que me lo cierre un usuario... Asi que quiero evitar que bien dando a la X o con la combinación de teclas ALT-F4 me puedan cerrar el dialogo...

Alguna sugerencia como puedo hacer esto??? :S

      Un saludo cALvET

takopiskunov

  • Nuevo Miembro
  • *
  • Mensajes: 11
    • Ver Perfil
Re: Cerrar Dialogo Mfc
« Respuesta #1 en: Martes 19 de Septiembre de 2006, 13:43 »
0
Lo que puedes hacer es ir a las propiedades del dialogo ( boton derecho encima del dialogo), y en la pestaña de styles desactivas la casilla de system menu. De esta manera no saldra la X en la barra superior.

Lo del alt-f4 no se como seria si me entero de algo ya te aviso.

Un saludo.

takopiskunov

  • Nuevo Miembro
  • *
  • Mensajes: 11
    • Ver Perfil
Re: Cerrar Dialogo Mfc
« Respuesta #2 en: Martes 19 de Septiembre de 2006, 14:09 »
0
para evitar lo del alt-f4 puedes hacer esto:

cuando creas el dialogo siempre sale con los botones aceptar y cancelar los cuales debes hacer boble clic sobre ellos para  obtener la funcion onbutton, aceptas y te crea un trozo de codigo parecido a este

void CAboutDlg::OnOK()
{
   // TODO: Add extra validation here
   
   CDialog::OnOK();
}

entonces eliminas la linea:

CDialog::OnOK();

y dejas la funcion vacia.


despues si no quieres los botones de aceptar y cancelar lo puedes quitar del dialogo pero deja el codigo q acabas de modificar.

No se si te he sido de gran ayuda pero tampoco soy un experto. Si tienes cualquier duda vuelve a preguntar.

Un saludo

1cacalvo

  • Miembro activo
  • **
  • Mensajes: 30
    • Ver Perfil
Re: Cerrar Dialogo Mfc
« Respuesta #3 en: Martes 19 de Septiembre de 2006, 16:13 »
0
Pues muchas gracias por las respuestas, al final googleando un poco he encontrado lo que necesitaba.. :D

Para la X en el dialogo he utilizado lo siguiente:
Citar
//Deshabilita la opción CERRAR X del dialogo
   CMenu* mnu = this->GetSystemMenu(FALSE);
 mnu->EnableMenuItem( SC_CLOSE, MF_BYCOMMAND|MF_GRAYED);

Y para desactivar el atajo de teclado ALT-F4:

Citar
void ulma::Ssr3DViewDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
  // TODO: Add your message handler code here and/or call default
 
  if ( ( nID & 0x0FFF0 ) != SC_CLOSE )
  {
    CAcUiDialog::OnSysCommand(nID, lParam);
  }
}


Bueno lo dejo ahi por si le hace falta a alguien, y aqui estoy por si tiene alguna duda mas...

  Y gracias a todos por responder

              Un saludo cALvET