Informace o stavovém řádku

Postup:
V deklarační části formuláře:

Private Const ABS_AUTOHIDE = &H1
Private Const ABS_ALWAYSONTOP = &H2
Private Const ABE_LEFT = 0
Private Const ABE_TOP = 1
Private Const ABE_RIGHT = 2
Private Const ABE_BOTTOM = 3

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

Private Type APPBARDATA
   cbSize As Long
   hwnd As Long
   uCallbackMessage As Long
   uEdge As Long
   rc As RECT
   lParam As Long
End Type

Private Declare Function SHAppBarMessage Lib "shell32.dll" _
   (ByVal dwMessage As Long, pData As APPBARDATA) As Long

Na formulář přidejte tlačítko a na jeho událost Click:

Private Sub Command1_Click()

   Dim rc As RECT
   Dim ABD As APPBARDATA
   Dim state As Long
   Dim position As Integer
   Dim hWndAppBar As Long
   Dim msg As String

   ABD.cbSize = Len(ABD)
   state = SHAppBarMessage(ABM_GETSTATE, ABD)
   
   Select Case state
      Case False
         msg = msg & " - Automaticky schovávat = Ne, _
                     Vždy na vrchu = Ne." & vbCrLf
         msg = msg & " - Uživatel povolil aplikacím stavový _
                     řádek překrýt." & vbCrLf
         msg = msg & " - Pokud je aplikace maximalizována, _
                     musí být stavový řádek manuálně vyvolán."
      Case ABS_ALWAYSONTOP
         msg = msg & " - Vždy na vrchu = Ano." & vbCrLf
         msg = msg & " - Stavový řádek je vždy zobrazen." & vbCrLf
         msg = msg & " - Velikost pracovní plochy je zmenšena _
                     o velikost stavového řádku."
      Case Else
         msg = msg & " - Automaticky schovávat = Ano." & vbCrLf
         msg = msg & " - Stavový řádek se zobrazí po najetí kurzorem." & vbCrLf
         msg = msg & " - Stavový řádek je umístněn  "
         For position = ABE_LEFT To ABE_BOTTOM
            ABD.uEdge = position
            hWndAppBar = SHAppBarMessage(ABM_GETAUTOHIDEBAR, ABD)
            If hWndAppBar > 0 Then
               Select Case position
                  Case ABE_LEFT: msg = msg & "vlevo. "
                  Case ABE_TOP: msg = msg & "nahoře. "
                  Case ABE_RIGHT: msg = msg & "vpravo. "
                  Case ABE_BOTTOM: msg = msg & "dole. "
               End Select
            End If
         Next
   End Select

   MsgBox msg

End Sub

Zpět

Autor: The Bozena