OnCommand

WM_COMMANDメッセージで制御通知を受信したときに呼び出される関数やメソッドを登録します。

GuiCtrl.OnCommand(NotifyCode, Callback , AddRemove)

パラメータ

NotifyCode

Type: Integer

監視する制御定義の通知コード。

Callback

型:文字列または関数オブジェクト

イベントが発生したときに呼び出す関数、メソッド、またはオブジェクトを指定します。

GUIにイベントシンクがある場合(つまりGui()EventObjパラメータが指定されている場合)、このパラメータはイベントシンクに属するメソッドの名前になります。そうでないときは、このパラメータは関数オブジェクトでなければなりません。

コールバックは 1 つのパラメーターを受け取り、次のように定義できます。

MyCallback(GuiCtrl) { ...

パラメータどう名前をつけようとも、現在のGUIコントロールのGuiControlオブジェクトに割り当てられます。

対応する情報が必要ないときはコールバックのパラメータを省略することができますが、その場合はMyCallback(*)のようにアスタリスクを指定する必要があります。

OnEventの注意事項である、thisとバインドされた関数に関する注意事項は、OnCommandにも適用されます。

イベントに対して複数のコールバックが登録されているときは、コールバックは空でない値を返し、残りのコールバックが呼ばれないようにすることができます。

コールバックの戻り値は、GUIコントロールに無視されます。

AddRemove

Type: Integer

省略したときは、初期値は 1 です。そうでないときはは、次のいずれかの番号を指定します:

WM_COMMAND

ある種のコントロールは、興味深いイベントが発生するたびにWM_COMMANDメッセージを送信します。新しいコントロールはWM_NOTIFYメッセージ(OnNotify参照)を使用するため、これらは通常、古くからあるWindows標準コントロールです。一般的に使用される通知コードはイベントに変換され、スクリプトはOnEventで監視することができます。

メッセージのパラメータには、コントロールID、HWND、通知コードが含まれ、AutoHotkeyはこれを使用して、適切なコールバックに通知をディスパッチします。追加のパラメータはありません。

どの通知が利用可能か(もしあれば)については、コントロールのマニュアルを参照してください。コントロールライブラリ (Microsoft Docs)には、Windowsのコモンコントロールへのリンクが含まれています(ただし、WM_COMMANDを使用するものはごく一部です)。通知コード(数字)は、Windows SDK、またはインターネットで検索して確認できます。

OnEventに関するこれらの注意は、OnCommandにも適用されます:スレッドGUIを破壊します。

OnNotifyは、WM_NOTIFYメッセージとして送信される通知に対して使用することができます。