• Viernes 1 de Noviembre de 2024, 06:34

Autor Tema:  Bloquear Alt F4  (Leído 4851 veces)

inde7

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Bloquear Alt F4
« en: Lunes 13 de Agosto de 2007, 10:04 »
0
Buenas,

Tengo un pequeño problema... No sé como bloquear el atajo de teclado Alt + f4. He estado mirando por el foro y usando el buscador y solo he encontrado el modo de bloquearlo en otros compiladores y usando librerías que desconozco o no tengo.

Tengo una aplicación windows form que, al iniciar, abre un pequeño formulario para configurar el acceso a una base de datos mysql. Ese formulario lo voy mostrando u ocultando con ->show o ->hide al pulsar determinados botones. Para eliminar la cruz de cerrar lo hice cambiando el FormBorderStyle, pero ahora no sé como bloquear el atajo ALT+f4.
Si el usuario pulsa alt f4 cuando está en el formulario secundário la aplicación produce un error ya que no puede acceder a determinados parametros, o no puede mostrar el formulario que ya ha sido eliminado.

Alguna idea?

Si el tema ya se ha tratado, disculpad, pero he sido incapaz de encontrarlo. Os agradecería que me facilitarais el link al post.

Muchas gracias por adelantado.

1cacalvo

  • Miembro activo
  • **
  • Mensajes: 30
    • Ver Perfil
Re: Bloquear Alt F4
« Respuesta #1 en: Martes 21 de Agosto de 2007, 08:52 »
0
Tienes que detectar los eventos del teclado del formulario, ahora mismo no me acuerdo del evento en cuestión y no tengo delante el Visual Studio pero sera algo asi como KeyPressed...

Cuando detectes un alt/f4 pues no haces nada o das un mensaje o lo que quieras...

inde7

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Bloquear Alt F4
« Respuesta #2 en: Martes 21 de Agosto de 2007, 10:14 »
0
Gracias por tu respuesta. Pero con el keypress creo que no puedo hacerlo ya que sólo detecta las teclas que correponden a un char y Alt, f4 y Alt+f4 no lo hacen... :(

Gracias de todos modos.

inde7

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Bloquear Alt F4
« Respuesta #3 en: Miércoles 22 de Agosto de 2007, 11:04 »
0
El evento que debía controlar era el "Is key down". De esta manera puedo controlar que tecla se pulsa y si se combina con una tecla especial como Alt. En caso afirmativo anulo el keypress para que no llegue la señal al programa.

Código: Text
  1. private: System::Void descartaAlt(System::Object^  sender, System::Windows::Forms::KeyEventArgs^  e) {
  2.       if (e->KeyCode::get()==Keys::F4 && e->Alt::get()){
  3.          e->SuppressKeyPress::set(true);
  4.       }
  5.      
  6.        
  7.      }
  8. }
  9.  

SteelX

  • Miembro MUY activo
  • ***
  • Mensajes: 218
    • Ver Perfil
Re: Bloquear Alt F4
« Respuesta #4 en: Miércoles 22 de Agosto de 2007, 16:27 »
0
Hola el evento que debes anular sería el WM_CLOSE pero entonces tu mismo habras de hacer el WM_DESTROY en algún botón .
Inside the code