子ウィンドウかどうかを調べる          <TOP>


指定のウィンドウに対して、子ウィンドウかどうかを調べます。

IsChild ウィンドウが子ウィンドウかどうかを判断

 

左:MainformにText1を貼り付けています

左:Text1がMainFormに対して    右:MainFormがText1に対して

 

 

'================================================================
'= 子ウィンドウかどうかを調べる
'=    (IsChild.bas)
'================================================================
#include "Windows.bi"

' ウィンドウが子ウィンドウかどうかを判断
Declare Function Api_IsChild& Lib "user32" Alias "IsChild" (ByVal hWndParent&, ByVal hWnd&)

Var Shared Text1 As Object
Var Shared Button1 As Object
Var Shared Button2 As Object

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

'================================================================
'=
'================================================================
Declare Sub Button1_on edecl ()
Sub Button1_on()
    If Api_IsChild(GethWnd, Text1.GethWnd) = 1 Then
        Text1.SetWindowText "Text1はMainFormのchildです!"
    Else
        Text1.SetWindowText "Text1はMainFormのchildではありません!"
    End If
End Sub

'================================================================
'=
'================================================================
Declare Sub Button2_on edecl ()
Sub Button2_on()
    If Api_IsChild(Text1.GethWnd, GethWnd) = 1 Then
        Text1.SetWindowText "MainFormはText1のchildです!"
    Else
        Text1.SetWindowText "MainFormはText1のchildではありません!"
    End If
End Sub

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