タスクバーの表示・非表示(U)          <TOP>


タスクバーを手前に表示自動的に隠すを切り替えます。(WindowsXPのみ適用可)

SHAppBarMessage アプリケーションバーのメッセージをシステムに送る

 

 

 

 

'================================================================
'= タスクバーの表示・非表示
'=    (SHAppBarMessage2.bas)
'================================================================
#include "Windows.bi"

#define ABM_GETSTATE &H4                '自動的に隠す・常に手前に表示の状態を取得
#define ABM_SETSTATE &HA                '自動的に隠すを設定
#define ABS_AUTOHIDE &H1                '自動で隠す
#define ABS_ALWAYSONTOP &H2             '常に手前に表示

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

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

' アプリケーションバーのメッセージをシステムに送る
Declare Function Api_SHAppBarMessage& Lib "Shell32" Alias "SHAppBarMessage" (ByVal dwMessage&, pData As APPBARDATA)

Var Shared Text1 As Object
Var Shared Radio1 As Object
Var Shared Radio2 As Object

Text1.Attach GetDlgItem("Text1") : Text1.SetFontSize 14
Radio1.Attach GetDlgItem("Radio1") : Radio1.SetFontSize 14
Radio2.Attach GetDlgItem("Radio2") : Radio2.SetFontSize 14

'================================================================
'=
'================================================================
Declare Function Index bdecl () As Integer
Function Index() As Integer
    Index = val(Mid$(GetDlgRadioSelect("Radio1"), 6)) - 1
End Function

'================================================================
'=
'================================================================
Declare Sub Button1_on edecl ()
Sub Button1_on()
    Var AppData As APPBARDATA
    Var Ret As Long

  If Index = 0 Then
    AppData.lParam = ABS_ALWAYSONTOP     '常に手前に表示設定
  Else
    AppData.lParam = ABS_AUTOHIDE      '自動で隠すの設定
  End If

  'タスクバー自動で隠す・手前に表示設定
  Ret = Api_SHAppBarMessage(ABM_SETSTATE, AppData)

    'タスクバーの設定状態を取得
  Ret = Api_SHAppBarMessage(ABM_GETSTATE, AppData)

    If Ret = ABS_ALWAYSONTOP Then
        Text1.SetWindowText "常に手前に表示に設定されています"
    End If
    
    If Ret = ABS_AUTOHIDE Then
        Text1.SetWindowText "自動的に隠すに設定されています"
    End If
End Sub

'================================================================
'=
'================================================================
While 1
    WaitEvent
Wend
Stop
End