SoloCodigo
Programación General => C/C++ => Visual C++ => Mensaje iniciado por: 1cacalvo en Martes 19 de Septiembre de 2006, 13:12
-
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
-
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.
-
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
-
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:
//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:
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