Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

ventana pierde el foco cuando la llamo,convinacion de teclas

Estas en el tema de ventana pierde el foco cuando la llamo,convinacion de teclas en el foro de Visual Basic clásico en Foros del Web. hola, Buen dia, les planteo problema: he realizado una aplicación la cual al arrancar el form principal lo oculto con me.hide, después con la convinación ...
  #1 (permalink)  
Antiguo 10/12/2011, 20:41
 
Fecha de Ingreso: marzo-2007
Mensajes: 53
Antigüedad: 17 años
Puntos: 0
ventana pierde el foco cuando la llamo,convinacion de teclas

hola,
Buen dia,

les planteo problema:
he realizado una aplicación la cual al arrancar el form principal lo oculto con me.hide, después con la convinación de teclas "Ctrl + a" la visualizo con formprincipal.show, el detalle esta que se visualiza perfectamente pero pierde el enfoque, aunque se posiciona por encima de todas, tengo que darle un click para para activarla ventana.
he probado con setfocus,lostfocus, también hice un click automatico al momento de volverse a visualizar pero no lo activa.

alguien tiene alguna sugerencia.

Saludos.
  #2 (permalink)  
Antiguo 13/12/2011, 03:26
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 9 meses
Puntos: 29
Respuesta: ventana pierde el foco cuando la llamo,convinacion de teclas

¿Has probado la api setfocus?
Private Declare Function SetFocus Lib "user32" (ByVal hWnd As Long) As Long

¿Has probado a hacer la ventana "Siempre visible"?
Puedes hacerla siempre visible y luego dejarla de nuevo normal.

Código vb:
Ver original
  1. Private Const conHwndTopmost = -1
  2. Private Const conHwndNoTopmost = -2
  3. Private Const conSwpNoSize = &H1
  4. Private Const conSwpNoMove = &H2
  5. Private Const conSwpNoActivate = &H10
  6. Private Const conSwpShowWindow = &H40
  7. Private Declare Function SetWindowPos Lib "user32" (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cX As Long, ByVal cY As Long, ByVal wFlags As Long) As Long
  8.  
  9.  
  10. Sub SiempreVisibleOn(ByVal lhWnd As Long)
  11.   SetWindowPos lhWnd, conHwndTopmost, 0, 0, 0, 0, conSwpNoActivate Or conSwpNoMove Or conSwpNoSize
  12. End Sub
  13.  
  14. Sub SiempreVisibleOff(ByVal lhWnd As Long)
  15.   SetWindowPos lhWnd, conHwndNoTopmost, 0, 0, 0, 0, conSwpNoActivate Or conSwpNoMove Or conSwpNoSize
  16. End Sub

PD: Quizá tengas que quitar el conSwpNoActivate para que la enfoque. Yo siempre lo he usado tal cual.
__________________
No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza!

Última edición por pkj; 13/12/2011 a las 03:41

Etiquetas: vb6
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:19.