WM_COMMANDメッセージで制御通知を受信したときに呼び出される関数やメソッドを登録します。
GuiCtrl.OnCommand(NotifyCode, Callback , AddRemove)
Type: Integer
監視する制御定義の通知コード。
イベントが発生したときに呼び出す関数、メソッド、またはオブジェクトを指定します。
GUIにイベントシンクがある場合(つまりGui()のEventObjパラメータが指定されている場合)、このパラメータはイベントシンクに属するメソッドの名前になります。そうでないときは、このパラメータは関数オブジェクトでなければなりません。
コールバックは 1 つのパラメーターを受け取り、次のように定義できます。
MyCallback(GuiCtrl) { ...
パラメータどう名前をつけようとも、現在のGUIコントロールのGuiControlオブジェクトに割り当てられます。
対応する情報が必要ないときはコールバックのパラメータを省略することができますが、その場合はMyCallback(*)のようにアスタリスクを指定する必要があります。
OnEventの注意事項である、thisとバインドされた関数に関する注意事項は、OnCommandにも適用されます。
イベントに対して複数のコールバックが登録されているときは、コールバックは空でない値を返し、残りのコールバックが呼ばれないようにすることができます。
コールバックの戻り値は、GUIコントロールに無視されます。
Type: Integer
省略したときは、初期値は 1 です。そうでないときはは、次のいずれかの番号を指定します:
ある種のコントロールは、興味深いイベントが発生するたびにWM_COMMANDメッセージを送信します。新しいコントロールはWM_NOTIFYメッセージ(OnNotify参照)を使用するため、これらは通常、古くからあるWindows標準コントロールです。一般的に使用される通知コードはイベントに変換され、スクリプトはOnEventで監視することができます。
メッセージのパラメータには、コントロールID、HWND、通知コードが含まれ、AutoHotkeyはこれを使用して、適切なコールバックに通知をディスパッチします。追加のパラメータはありません。
どの通知が利用可能か(もしあれば)については、コントロールのマニュアルを参照してください。コントロールライブラリ (Microsoft Docs)には、Windowsのコモンコントロールへのリンクが含まれています(ただし、WM_COMMANDを使用するものはごく一部です)。通知コード(数字)は、Windows SDK、またはインターネットで検索して確認できます。
OnEventに関するこれらの注意は、OnCommandにも適用されます:スレッド、GUIを破壊します。
OnNotifyは、WM_NOTIFYメッセージとして送信される通知に対して使用することができます。