Principales respuestas
¿Cómo sería la traducción de este pequeño código en VB.NET?

Pregunta
-
#region IMessageFilter Members private const UInt32 WM_KEYDOWN = 0x0100; public bool PreFilterMessage(ref Message m) { if (m.Msg == WM_KEYDOWN) { Keys keyCode = (Keys)(int)m.WParam & Keys.KeyCode; if (keyCode == Keys.Escape) { //Hacer algo } return true; } return false; } #endregion
Respuestas
-
Private Const WM_KEYDOWN As UInt32 = &H0100 Public Function PreFilterMessage(ByRef m As Message) As Boolean If m.Msg = WM_KEYDOWN Then Dim keyCode As Keys = CType(CInt(m.WParam), Keys) And Keys.KeyCode If keyCode = Keys.Escape Then
'Hacer algo End If Return True End If Return False End Function
- Marcado como respuesta James2016-2 miércoles, 18 de diciembre de 2019 16:43
-
Public ClassForm16 Inherits Form Implements IMessageFilter ... Application.AddMessageFilter(Me)
Si te sale un error en "Implements IMessageFilter", significa que la definicion de PreFilterMessage no concuerda exactamente con la forma en que se ha declarado en IMessageFilter. Si te ocurre esto, usa la F12 para ver cual es la declaracion exacta y corrige el metodo.
- Marcado como respuesta James2016-2 miércoles, 18 de diciembre de 2019 17:15
Todas las respuestas
-
Private Const WM_KEYDOWN As UInt32 = &H0100 Public Function PreFilterMessage(ByRef m As Message) As Boolean If m.Msg = WM_KEYDOWN Then Dim keyCode As Keys = CType(CInt(m.WParam), Keys) And Keys.KeyCode If keyCode = Keys.Escape Then
'Hacer algo End If Return True End If Return False End Function
- Marcado como respuesta James2016-2 miércoles, 18 de diciembre de 2019 16:43
-
Gracias, ese mismo código tiene en la declaración de la clase algo como esto:
public partial class Form16 : Form,IMessageFilter
y en el evento load
Application.AddMessageFilter(this);
Lo traduje así, pero no funcionó:
Application.AddMessageFilter(CType(Me, IMessageFilter))
¿Cómo serían esas dos líneas, porfa?
-
Public ClassForm16 Inherits Form Implements IMessageFilter ... Application.AddMessageFilter(Me)
Si te sale un error en "Implements IMessageFilter", significa que la definicion de PreFilterMessage no concuerda exactamente con la forma en que se ha declarado en IMessageFilter. Si te ocurre esto, usa la F12 para ver cual es la declaracion exacta y corrige el metodo.
- Marcado como respuesta James2016-2 miércoles, 18 de diciembre de 2019 17:15
-