外部インタフェース/API    

イベントハンドラを書く

ActiveXイベントは、コントローラが興味があることが発生したことをcomtainerに通知したいときに呼び出されます。たとえば、多くのコントロールは、ユーザがコントロール上でシングルクリックしたときにイベントをトリガします。MATLABでは、コントロールが作成されるとき、actxcontrolコマンドの最後の引数として、またはイベントハンドラを含むセル配列としてオプションでコールバック(イベントハンドラ関数 としても知られています)を与えます。

イベントハンドラ関数(callback)は、コントロールがイベントをトリガするときにコールされます。イベントハンドラ関数は、つぎの形式で、可変数の引数を受け取るM-ファンクションでなければなりません。

この関数に渡されるすべての引数は、MATLAB文字列です。イベントハンドラの第一引数は、イベントハンドラをコールさせるイベント数を表わす文字列です。残りの引数は、イベントと共にコントロールによって渡される値です。これらの値は、用いられるイベントとコントロールにより異なります。呼び出しをコントロールするイベントのリストと対応するイベント数とパラメータは、コントロールのドキュメントから得る必要があります。MATLABでイベントを利用するには、イベントハンドラでそれらを使うために、コントロールがイベントに対して使う数値を見つける必要があります。

セル配列形式で使われるイベントハンドラは、コールバック形式で使われるものとわずかに異なります。セル配列形式の第一引数は、オブジェクト自身を参照します。第二引数はイベントの数で、コールバック形式と異なり、数値を表わす文字列ではありません (その後の引数は、イベントにより異なります)

つぎのイベントハンドラの例myclick.m, my2click.m, mymoused.mは、actxcontrolの例題に対応します。

セル配列の組を使って、モニターしたいすべてのイベントに対して同じイベントハンドラを使うことができます。応答時間は、コールバック形式を使うよりも良くなります。

たとえば、

allevents.mは、


 set Additional ActiveXクライアントの情報