Hola un saludo desde Venezuela

¿Cómo estás? Leí una pregunta que te hicieron y me gusto mucho como contestaste.Más que todo esto es un agradecimiento y no una pregunta, ya que gente como tu que sabe del tema y es sencilla, ayuda a gente como yo que esta empezando en esto de programar.
Para que no digan nada te envío una pregunta:Que debo hacer para que cuando un formulario de VB6.0 este ejecutándose, se cierre y caiga al formulario principal utilizando la tecla esc.
De verdad Gracias

1 Respuesta

Respuesta
1
Bien, Pon este código en un formulario :
Private Sub Form_Load()
SetTimer Me.hwnd, 0, 1, AddressOf TimerProc
End Sub
Private Sub Form_Unload(Cancel As Integer)
KillTimer Me.hwnd, 0
End Sub
Y esto en un modulo :
Global ventana As Form1
Public Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
Public Declare Function KillTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long
Public Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Public Sub TimerProc(ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long)
ventana.Text1.Text = GetPressedKey
End Sub
Function GetPressedKey() As String
For Cnt = 32 To 128
'Get the keystate of a specified key
If GetAsyncKeyState(Cnt) <> 0 Then
GetPressedKey = Chr$(Cnt)
Exit For
End If
Next Cnt
End Function
Public Sub Main()
Set ventana = New Form1
ventana.Show
End Sub
Y mira lo que sale en el textbox del formulario cuando pulsas cualquier tecla...
Veamos
Por un lado la respuesta:
Hay dos modos, uno es intentar capturar toda tecla pulsada y controlar el evento desde el formulario en cuestión. El otro, me gusta más y es más sencillito, consiste en dejar que los eventos discurran hacia el formulario, si este está activo. De este modo :
Supongamos que el formulario tiene un botón cancelar, lo único que debes hacer es que cada control del formulario tenga una llamada como la de este botón cancelar que es el que cierra el formulario :
Private Sub CancelButton_Click()
Unload Me
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
If KeyAscii = 27 Then CancelButton_Click
End Sub
Private Sub OKButton_KeyPress(KeyAscii As Integer)
Form_KeyPress (KeyAscii)
End Sub
Si prefieres la captura del teclado, házmelo saber y me la documento. Se hacerlo, pero no lo hice nunca.
Y con respecto a lo de ayudar, hago lo mismo que han hecho antes por mi. Sin más. Aunque los agradecimentos, como el tuyo, son lo que más anima a dedicar tiempo a ayudar.
Saludos, si buscar la información de la captura de teclado no se te hace complicado, me gustaría que me la hicieras saber, sino no te amargues porque el método que me recomendaste es muy bueno también
Hasta luego y gracias
No recibo tu respuesta. ¿No te sirve? Te advierto que no deberías depurar el código. Dado que usa los componentes de multiproceso COM+.
Genera el ejecutable o observalo.
Si tienes alguna duda o no te funciona bien, házmelo saber.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas