Autor Tema: Como saber tamaño y posicion de ventana activa  (Leído 3118 veces)

0 Usuarios y 1 Visitante están viendo este tema.

..::Carlos::..

  • Bytes
  • *
  • Mensajes: 44
  • Reputación: +0/-0
    • Ver Perfil
Como saber tamaño y posicion de ventana activa
« en: Febrero 05, 2012, 07:09:32 am »
Hola amigos como estas miren haber si me pueden echar una mano como puedo saber cual es el tamaño, posicion y tamaño interior de la ventana activa

Gracias

E N T E R

  • Petabyte
  • ******
  • Mensajes: 1062
  • Reputación: +57/-13
  • www.enterpy.com
    • Ver Perfil
    • www.enterpy.com
Re:Como saber tamaño y posicion de ventana activa
« Respuesta #1 en: Febrero 05, 2012, 10:31:29 am »
CIBER GOOGLE - CONCEPCIÓN PARAGUAY
www.enterpy.com
Primera regla de la programacion, para que vas a hacerlo complicado si lo puedes hacer sencillo

raul338

  • Terabyte
  • *****
  • Mensajes: 894
  • Reputación: +62/-8
  • xD fan!!!!! xD
    • Ver Perfil
    • Raul's Weblog
Re:Como saber tamaño y posicion de ventana activa
« Respuesta #2 en: Febrero 05, 2012, 01:03:55 pm »
GetWindowRect te da el tamaño en pixeles :)

LeandroA

  • Administrador
  • Petabyte
  • *****
  • Mensajes: 1128
  • Reputación: +151/-8
    • Ver Perfil
Re:Como saber tamaño y posicion de ventana activa
« Respuesta #3 en: Febrero 05, 2012, 02:34:24 pm »
hola si te referiz a la parte cliente con estas apis

ClientToScreen  para saber la x e y de la ventana cliente
GetClientRect para saber el width y height  de la ventana cliente
GetForegroundWindow para saber la ventana activa


Código: (vb) [Seleccionar]
Option Explicit
Private Declare Function ClientToScreen Lib "user32.dll" (ByVal hwnd As Long, ByRef lpPoint As POINTAPI) As Long
Private Declare Function GetClientRect Lib "user32.dll" (ByVal hwnd As Long, ByRef lpRect As RECT) As Long
Private Declare Function GetForegroundWindow Lib "user32.dll" () As Long

Private Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
End Type

Private Type POINTAPI
    x As Long
    y As Long
End Type

Private Sub Form_Load()
    Timer1.Interval = 100
End Sub

Private Sub Timer1_Timer()
    Dim Handle As Long
    Dim tRect As RECT
    Dim tPT As POINTAPI
   
    Handle = GetForegroundWindow
    GetClientRect Handle, tRect
    ClientToScreen Handle, tPT
   
    Me.Cls
    Me.Print Handle, tPT.x, tPT.y, tRect.Right, tRect.Bottom
   
End Sub

Saludos.