メッセージキュー内のメッセージの有無を判定 <TOP>
GetInputState 呼び出し側スレッドのメッセージキューの中に、メッセージが存在するかどうかを判断
'================================================================ '= メッセージキュー内のメッセージの有無を判定
'= (GetInputState.bas) '================================================================ #include "Windows.bi" ' 呼び出し側スレッドのメッセージキューの中に、マウスボタンメッセージまたはキーボードメッセージが存在するかどうかを調べる Declare Function Api_GetInputState& Lib "user32" Alias "GetInputState" () Var Shared bCancel As Integer 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() Var n As Long '初期状態 bCancel = False 'Loop開始 Do n = n + 1 'マウスおよびキーボードからのメッセージをチェック If Api_GetInputState() = False Then CallEvent Text1.SetWindowText Str$(n) Loop Until bCancel = True A% = MessageBox(GetWindowText, "メッセージを確認しました!", 0, 2) End Sub '================================================================ '= '================================================================ Declare Sub Button2_on edecl () Sub Button2_on() bCancel = True End Sub '================================================================ '= '================================================================ While 1 WaitEvent Wend Stop End