oncmd

Windowsメッセージ割り込み実行指定

oncmd goto/gosub *label,p1

*label : ラベル名
p1     : メッセージID

解説

指定されたウィンドウメッセージが送られた時に、自動的にジャンプする場所を指定します。

oncmdの後に続けて、gotoまたはgosubキーワードを指定してからラベルを記述します。
gotoの場合には、単純なプログラムジャンプ。 gosubの場合はサブルーチンジャンプを行ないます。
goto/gosubキーワードを省略した場合には、gotoキーワードと同等の動作になります。

oncmd命令でラベルを指定すると、それ以降はHSPのウィンドウに対してp1のメッセージが送られた時に*labelで指定したラベルにジャンプします。
oncmd命令は、現在の操作先ウィンドウのみが対象になります。
複数のウィンドウを作成している場合は、 ウィンドウごとにoncmd命令による登録が可能です。

既に登録されているウィンドウメッセージが指定された場合は、以前の登録が無効になります。
また、割り込みの登録は、ウィンドウの初期化とは同期していません。
一度登録された割り込みは、アプリケーションが終了するまで有効になります。

割り込みジャンプは、stop命令および、waitawait命令で停止している時に割り込みを受け付けてジャンプを行います。
また、割り込みによりジャンプを行なった後はシステム変数iparamwparamlparamがセットされます。
割り込みが発生したウィンドウIDは、 ginfo関数により取得することができます。

   割り込み要因 | iparam       | wparam | lparam
 ---------------------------------------------------------------------
   oncmd        | メッセージID | wParam | lParam

システム変数iparamには、送信されたメッセージIDが代入されます。
また、wparam,lparamはWindowsメッセージとして渡されたパラメータがそのまま格納されています。
割り込みの設定で、 gosubキーワードによるサブルーチンジャンプが発生した場合は、return命令により戻り値を設定することが可能です。
「return 数値」で、ウィンドウプロシージャーが返す値を指定します。
return命令にパラメーターを指定しなかった場合には、デフォルトのウインドゥプロシージャーに処理が渡されます。

イベント割り込み実行の一時的なON/OFFをすることも可能です。

	oncmd 0

で一時的に割り込みを停止します。

	oncmd 1

で一時停止した割り込みを再開させることができます。

関連項目

onkeyキー割り込み実行指定
onclickクリック割り込み実行指定
onexit終了時にジャンプ
onerrorエラー発生時にジャンプ

サンプル逆引き (7)

dragdrop.hsp
menusample.hsp
multitouch1.hsp
multitouch2.hsp
multitouch3.hsp
statusbar.hsp
winmove.hsp

情報

バージョン3.4
作成日2013/12/09
著作者onitama
URLhttp://hsp.tv/
備考ver3.4標準命令
タイプ内蔵命令
グループプログラム制御命令
対応環境
  • Windows 版 HSP
  • コマンドライン版 HSP
  • HSPLet
hs ファイルhsphelp\i_prog.hs