アドバイスありがとうございます。
初心者ゆえあっちこっちぶつかりやっています。
他にも色々な方法があるようですが、以下内容で動いています。
(MessageBox関数でuTypeをMB_OKとした場合などや、他の方のアプリソフトでもSPACEキ-とENTERキ-では動きが違い、ENTERキ-では押された感じを出さないようなのでこれでやっています)
MainWnd_Createイベントで、
コード:
hEnterKey =CreateThread(ByVal NULL, 0, AddressOf(EnterKey), 0, 0, VarPtr(dwDummy))
でEnterKeyスレッドを生成し、ActivateFlagやCmdButton1_FocusFlagは別イベントで決めておき、
コード:
Function EnterKey(hWnd As DWord) As DWord
While 1
If ActivateFlag =1 Then 'ウィンドウがアクティブならスレッド処理
If CmdButton1_FocusFlag =1 Then
If GetAsyncKeyState(&h0d) and &H8000 Then '&h0d =ENTERキーでキーが押された
SendMessage(hCommandButton1, BM_CLICK, 0, 0) 'これだと押された感じが出ない
End If
End If
Sleep(20)
End If
Wend
CloseHandle(hEnterKey)
End Function
とスレッド処理。
コード:
SendMessage(hCommandButton1, BM_CLICK, 0, 0)
の代わりに
コード:
SendMessage(hCommandButton1, WM_LBUTTONDOWN, 0, 0)
Sleep(30)
SendMessage(hCommandButton1, WM_LBUTTONUP, 0, 0)
とすると、ボタンが押された感じが出ますが、同時にマウスを動かしているとエラ-を起こすのでやめました。