投稿日 | : 2007/07/04(Wed) 11:48 |
投稿者 | : 魔界の仮面弁士 |
Eメール | : |
URL | : |
タイトル | : Re^3: フォーム非アクティブ時操作。 |
http://support.microsoft.com/kb/168795/ja
のサンプルにおいて、WindowProc プロシージャ内の
Debug.Print "Message: "; hw, uMsg, wParam, lParam
という行を削除して、かわりに下記のコードに差し替えてみてください。
Const WM_ACTIVATE As Long = 6
Const WA_INACTIVE As Long = 0
Const WA_ACTIVE As Long = 1
Const WA_CLICKACTIVE As Long = 2
If uMsg = WM_ACTIVATE Then
Debug.Print "WM_ACTIVATE:";
Select Case wParam
Case WA_INACTIVE
Debug.Print "WA_INACTIVE"
Case WA_ACTIVE
Debug.Print "WA_ACTIVE"
Case WA_CLICKACTIVE
Debug.Print "WA_CLICKACTIVE"
Case Else
Debug.Print wParam
End Select
End If
これにより、フォームのアクティブ状態/非アクティブ状態を監視できるので、
・非アクティブになったら、ボタンを使用不可(Enabled=False)にする。
・アクティブになったら、ボタンを使用可能(Enabled=True)にする。
のように実装する……というのは如何でしょう。