• Lunes 23 de Diciembre de 2024, 03:44

Autor Tema:  Mostrar Ventana Sobre Todas Las Demas  (Leído 1041 veces)

Skipped

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Mostrar Ventana Sobre Todas Las Demas
« en: Sábado 4 de Agosto de 2007, 21:29 »
0
Hola Tod@s:

Hace mucho tiempo que quiero hacer esto en Visual Basic, sin respuesta en muchos foros y con este ya me rendire...

Lo que quiero es lo siguiente: Mostrar un formulario sobre un juego DirectX en pantalla completa, por ejemplo, el Counter Strike.

Lo he podido hacer de dos formas pero hay un problema, en ambos casos, en el juego aparece la flechita del mouse intermitente (parpadeando) lo que molesta mucho. ¿ Alguien sabe alguna otra forma o como evitar que parpadee la flecha del mouse ?

Estas son las formas en que el formulario queda sobre la ventana del juego, pero el cursor del mouse queda intermitente:

Código: Text
  1. 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
  2. Const HWND_TOPMOST = -1
  3. Const SWP_NOMOVE = &H2
  4. Const SWP_NOSIZE = &H1
  5. Private Sub Form_Load()
  6. Call SetWindowPos(Form1.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE)
  7. End Sub
  8.  


y la otra manera (en esta hay un timer con interval 1):

Código: Text
  1. Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
  2. Private Declare Function GetForegroundWindow Lib "user32" () As Long
  3. Private Sub Timer1_Timer()
  4. Dim mhwnd As Long
  5. mhwnd = GetForegroundWindow SetParent Form1.hwnd, mhwnd
  6. End Sub
  7.  


PD: quiero hacer esto para mostrar las Tº de PC mientras juego.

Ayudenme porfavor.
Gracias

mjesun

  • Miembro activo
  • **
  • Mensajes: 56
    • Ver Perfil
Re: Mostrar Ventana Sobre Todas Las Demas
« Respuesta #1 en: Jueves 23 de Agosto de 2007, 23:30 »
0
hola! a ver, te explico: el hecho de que la flecha parpadee no es problema de win32.. sino del counter! el metodo del HWND_TOPMOST es el mas elegante (y el mejor) de ambos

el problema es que el counter oculta el mouse, centrandolo en la pantalla. por eso, cuando intentas mover el cursor sobre la ventana, parpadea. realmente lo que esta pasando es que el cursor vuelve a la posicion que le impone el CS, y vuelve de nuevo a la posicion que le impone windows al desplazarse de la ventana....

saludos, miguel

mjesun

  • Miembro activo
  • **
  • Mensajes: 56
    • Ver Perfil
Re: Mostrar Ventana Sobre Todas Las Demas
« Respuesta #2 en: Jueves 23 de Agosto de 2007, 23:32 »
0
sorry, envie dos veces