デスクトップアイコンの表示・非表示          <TOP>


デスクトップ上にあるアイコン群の表示・非表示を実行します。

FindWindow クラス名またはキャプションを与えてウィンドウのハンドルを取得

ShowWindow 指定されたウィンドウの表示状態を設定

 

左:「非表示」をクリック    右:「表示」をクリック

 

 

'================================================================
'= デスクトップアイコンの表示・非表示
'=    (DesktopIconShowHide.bas)
'================================================================
#include "Windows.bi"

' クラス名またはキャプションを与えてウィンドウのハンドルを取得
Declare Function Api_FindWindow& Lib "user32" Alias "FindWindowA" (ByVal lpClassName$, ByVal lpWindowName$)

' 指定されたウィンドウの表示状態を設定
Declare Function Api_ShowWindow& Lib "user32" Alias "ShowWindow" (ByVal hWnd&, ByVal nCmdShow&)

#define SW_HIDE 0                       '指定のウィンドウを非表示にし他のウィンドウをアクティブ化
#define SW_RESTORE 9                    'ウィンドウをアクティブ化し表示。ウィンドウがアイコン化または最大化されているときは元の位置とサイズに

Var Shared Button1 As Object
Var Shared Button2 As Object

Button1.Attach GetDlgItem("Button1") : Button1.SetFontSize 14
Button2.Attach GetDlgItem("Button2") : Button2.SetFontSize 14

'================================================================
'= アイコンを非表示
'================================================================
Declare Sub Button1_on edecl ()
Sub Button1_on()
    Var hWnd As Long
    Var Ret As Long

    hWnd = Api_FindWindow(ByVal 0, "Program Manager")
    If Not hWnd = 0 Then
        Ret = Api_ShowWindow(hWnd, SW_HIDE)
    End If
End Sub

'================================================================
'= アイコンを表示
'================================================================
Declare Sub Button2_on edecl ()
Sub Button2_on()
    Var hWnd As Long
    Var Ret As Long

    hWnd = Api_FindWindow(ByVal 0, "Program Manager")
    If Not hWnd = 0 Then
        Ret = Api_ShowWindow(hWnd, SW_RESTORE)
    End If
    SetFocus 'フォームをアクティブに
End Sub

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