Resumen Tamaño y posición de la barra de tareas


-----Original Message-----
From: Oscar Manuel Gomez Senovilla <oscarsen@eims.es>
Date: Saturday, April 04, 1998 5:36 PM


>> ¿Cómo puedo saber el tamaño y la posición de la barra de tareas de w95 en
>> un momento determinado?

>


No puedes de manera directa. Lo que sí puedes es determinar las coordenadas del
área de trabajo, llamando a SystemParametersInfo. Te paso un ejemplo. Pega este
código en un módulo .BAS. Si quieres ajustar el tamaño de la ventana de manera
que llene el área disponible del escritorio, sólo necesitas la instrucción:

FillSystemWorkArea

Si revisas ese procedimiento, allí se ve cómo se solicita el tamaño del área
cliente, so, puedes ajustarlo para lo q necesites.

Option Explicit
' OJO: todas las declaraciones son privadas para evitar
' posibles problemas con las mismas declaraciones hechas
' en otros módulos

' coordenadas de un rectángulo
Private Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
End Type

' actions de SystemParametersInfo
Private Const SPI_GETWORKAREA = 48

' SystemParametersInfo: wrapper para solicitar workarea
Private Declare Function WorkAreaSPI Lib "user32" _
    Alias "SystemParametersInfoA" _
        (ByVal uAction As Long, ByVal uParam As Long, _
            ByRef lpvParam As RECT, ByVal fuWinIni As Long) As Long

' esta rutina cambia el tamaño y posición de una forma
' de manera que llene el área del escritorio de Win95
Public Sub FillSystemWorkArea(Forma As Form)
    Dim lResult As Long
    Dim lLastError As Long
    Dim APICallRect As RECT
    ' traer work area del sistema
    lResult = WorkAreaSPI(SPI_GETWORKAREA, 0&, APICallRect, 0&)
    ' detectar lasterror del DLL
    lLastError = Err.LastDllError
    ' validar si algo falló
    If lResult = 0 Then
        ' si el resultado es 0, algo salió mal.
        MsgBox "Error al leer WorkArea de Sistema. Código: " & lLastError
    Else
        ' ojo: hay que ajustar pixels a twips
        With APICallRect
            .Top = .Top * Screen.TwipsPerPixelY
            .Bottom = .Bottom * Screen.TwipsPerPixelY
            .Left = .Left * Screen.TwipsPerPixelX
            .Right = .Right * Screen.TwipsPerPixelX
        End With
        ' ajustar posición de la forma
        With APICallRect
            Forma.Top = .Top
            Forma.Left = .Left
            Forma.Height = .Bottom - .Top
            Forma.Width = .Right - .Left
        End With
    End If
End Sub




Resumen Resumen

Visual Basic Página de Visual Basic

Página principal Página principal

www.jrubi.com