コンボボックスのリスト表示状態の判断 <TOP>
SendMessage ウィンドウにメッセージを送信
CB_GETDROPPEDSTATE(&H157) コンボボックスのリストボックスが表示されている状態かどうかを判断
'================================================================ '= コンボボックスのリスト表示状態の判断 '= (CB_GETDROPPEDSTATE.bas) '================================================================ #include "Windows.bi" ' ウィンドウにメッセージを送信 Declare Function Api_SendMessage& Lib "user32" Alias "SendMessageA" (ByVal hWnd&, ByVal wMsg&, ByVal wParam&, lParam As Any) #define CB_GETDROPPEDSTATE &H157 'コンボボックスのリストボックスが表示されている状態かどうかを判断する Var Shared Combo1 As Object Var Shared Text1 As Object Var Shared Timer1 As Object Combo1.Attach GetDlgItem("Combo1") : Combo1.SetFontSize 14 Text1.Attach GetDlgItem("Text1") : Text1.SetFontSize 14 Timer1.Attach GetDlgItem("Timer1") '================================================================ '= '================================================================ Declare Sub MainForm_Start edecl () Sub MainForm_Start() For i% = 1 To 20 Combo1.AddString Str$(i%) Next Timer1.SetInterval 10 Timer1.Enable -1 End Sub '================================================================ '= '================================================================ Declare Sub Timer1_Timer edecl () Sub Timer1_Timer() Var Ret As Long Ret = Api_SendMessage(Combo1.GethWnd, CB_GETDROPPEDSTATE, 0, 0) If Ret Then Text1.SetWindowText "リストボックスが表示されています!" Else Text1.SetWindowText "リストボックスが表示されていません!" End If End Sub '================================================================ '= '================================================================ While 1 WaitEvent Wend Stop End