思い通りにプログラムが実行されません
ActiveBasicソフトで以下のプログラムを組んだのですが、どのボタンを押してもそのボタンに対応する命令だけでなく全命令(「エラー」、「故障」、終了命令)が実行されてしまいます。どこが間違っているのでしょうか?
ID_button1=1
ID_button2=1
ID_button3=1
Window hnewWnd,0,0,0,800,600,"test",WS_OVERLAPPEDWINDOW or WS_VISIBLE
Window hbutton1,hnewWnd,50,500,64,32,"read",WS_CHILD or WS_VISIBLE,"BUTTON",ID_button1
Window hbutton2,hnewWnd,350,500,64,32,"cal",WS_CHILD or WS_VISIBLE,"BUTTON",ID_button2
Window hbutton3,hnewWnd,650,500,64,32,"exit",WS_CHILD or WS_VISIBLE,"BUTTON",ID_button3
*MessageLoop
GetWndMsg hThisWnd, Message, wParam, lParam
If Message = WM_CLOSE Then DelWnd hbutton1 : DelWnd hbutton2 : DelWnd hbutton3 : DelWnd hMainWnd : End
If Message = WM_COMMAND and LOWORD( wParam ) = ID_button1 Then MsgBox hnewWnd, "エラー"
If Message = WM_COMMAND and LOWORD( wParam ) = ID_button2 Then MsgBox hnewWnd, "故障"
If Message = WM_COMMAND and LOWORD( wParam ) = ID_button3 Then SendWndMsg hnewWnd, WM_CLOSE, wParam, lParam
Goto *MessageLoop
End
補足
ご返信ありがとうございます。 ::PostMessage()をコールするサブルーチンがコントロールのクラスとは別のところにあり、コントロールのウインドウハンドルを 取得できない状態にあります。 コントロールは複数newされる可能性があります。 このような状況下でサブルーチンから現在アクティブなコントロール のウインドウにメッセージをポストする方法を探しています。 なにかいい方法はございませんでしょうか?