【VB6メモ】タスクバーの動的な表示/非表示の切替

VB6でアプリケーションのタスクバーの動的な表示/非表示の切替の方法をメモしておきます。
※ちなみに単純にタスクバーを非表示にするだけなら、VB6のFormではShowInTaskbarプロパティがあります。
 ただし、これはデザイナでしか指定できない読込専用プロパティです。

タスクバーの表示/非表示の切替を行うにはWindowsAPIのGetWindowLong関数SetWindowLong関数を使用します。
hWndプロパティが取得できる画面であればこの方法で実現できるはずです。
※Excelウィンドウはウインドウ表示時にタスクバーを表示しているようだったのでできませんでしたが。。。

処理の以下のような流れとなります。
 GetWindowLong関数でウィンドウのスタイルを取得
  ※このときGetWindowLong関数には対象ウィンドウのhWndプロパティを指定
 ⊆萋世靴織好織ぅ襪縫織好バー非表示の設定を行う
  ※スタイルはビット値なので、論理演算で差分だけ変更します
 ウィンドウを一旦非表示(これをしないとうまく反映されない)
 SetWindowLong関数でウィンドウに新しいスタイルを設定
  ※このときSetWindowLong関数には対象ウィンドウのhWndプロパティを指定
 ゥΕンドウを再表示

VB6サンプル:タスクバーの動的な表示/非表示の切替
'VB6のForm内に処理を記述した場合'

Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _ 
     (ByVal hwnd As Long, ByVal nIndex As Long) As Long 

Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _ 
     (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long 

'拡張スタイル'
Private Const GWL_EXSTYLE = (-20)
'拡張スタイル:タスクバー表示'
Private Const WS_EX_APPWINDOW = &H40000

'ボタンクリック時'
Private Sub BtnSample_Click()

    Dim wStyle    As Long
    Dim wStyleNew As Long
    Dim wStyleOld As Long
    
    'ウィンドウの拡張スタイルを取得'
    wStyle = GetWindowLong(Me.hwnd, GWL_EXSTYLE) 
    
    'タスクバーの表示をチェック'
    If wStyle <> (wStyle Or WS_EX_APPWINDOW) Then
        'タスクバー非表示時は表示に変更'
        wStyleNew = wStyle Or WS_EX_APPWINDOW 
    Else
        'タスクバー表示時は非表示に変更'
        wStyleNew = wStyle And Not WS_EX_APPWINDOW 
    End If
    
    'ウィンドウの拡張スタイルを変更'
    '(非表示→設定→再表示としないと反映されないっぽい)'
    Me.Hide
    wStyleOld = SetWindowLong(Me.hwnd, GWL_EXSTYLE, wStyleNew) 
    Me.Show
    
End Sub
【画面起動時】


【btnSampleクリック時】

→タスクバー非表示

【btnSampleクリック時】

→タスクバー表示


コメント
コメントする








    
この記事のトラックバックURL
トラックバック
このページの先頭へ▲

search

カテゴリ

おすすめ書籍

楽天ブックス

フィロの村group

others

visiter