指定されたウィンドウの表示状態を調べる          <TOP>


指定したウィンドウが表示されているかどうかを調べます。

IsWindowVisible 指定されたウィンドウの表示状態を調べる

 

テスト例では、ウィンドウ(Form2)を意識的に表示/非表示させ、IsWindowVisibleの結果を確認しています。

 

'================================================================
'= 指定されたウィンドウの表示状態を調べる
'=    (IsWindowVisible.bas)
'================================================================
#include "Windows.bi"

' 指定されたウィンドウの表示状態を調べる
Declare Function Api_IsWindowVisible& Lib "user32" Alias "IsWindowVisible" (ByVal hWnd&)

Var Shared Button1 As Object
Var Shared Button2 As Object

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

Var Shared Form2 As Object
Var Shared FLG As Integer

'================================================================
'=
'================================================================
Declare Sub MainForm_Start edecl ()
Sub MainForm_Start()
    If Not (CheckObject(Form2)) Then
        Form2.CreateWindow "Form2", -1
    End If
End Sub

'================================================================
'= Form2の表示/非表示
'================================================================
Declare Sub Button1_on edecl ()
Sub Button1_on()
    FLG = 1 - FLG

    If FLG = 0 Then
        Form2.ShowWindow -1
    Else
        Form2.ShowWindow 0
    End If
End Sub

'================================================================
'= Form2の表示状態を知る
'================================================================
Declare Sub Button2_on edecl ()
Sub Button2_on()
    Var Ret As Long

    Ret = Api_IsWindowVisible(Form2.GethWnd)

    If Ret <> 0 Then
        A% = MessageBox("Form2", "Visible", 0, 2)
    Else
        A% = MessageBox("Form2", "No Visible", 0, 2)
    End If
End Sub

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