外部インタフェース/API | ![]() ![]() |
figureウィンドウでActiveXコントロールを作成します。
表示
h =actxcontrol (progid [, position [, handle ... [,callback |{event1 eventhandler1; ... event2 eventhandler2; ...}]]])
引数
progid
作成するコントロール名を示す文字列。コントロールのベンダがこの文字列を提供します。
position
x
およびy
の位置とxsize
とysize
を含む位置ベクトル、ピクセル単位で[x y xsize ysize]
と表わされます。デフォルトは、[20 20 60 60]
です。
handle
gcf
です。
callback
出力
コントロールまたはサーバに対するデフォルトのインタフェースを表わすMATLAB activexオブジェクト。このオブジェクトについてget
, set
, invoke
, propedit
, release
, delete
メソッドを使います。このコールが失敗した場合は、MATLABエラーが生成されます。
詳細
figureウィンドウの特定の位置にActiveXコントロールを作成します。親のfigureウィンドウが非可視である場合は、コントロールは非可視になります。出力されるMATLAB activexオブジェクトは、コントロールに対するデフォルトインタフェースを表わします。このインタフェースが必要でないときには、インタフェースが利用するメモリとリソースを開放するために、release
をコールして開放しなければなりません。インタフェースの開放は、コントロール自身は削除しません(delete
コマンドを使ってコントロールを削除してください)。
コールバックのイベントハンドラの例は、toolbox\matlab\winfun
のsampev.m
を参照してください。
例題
f = figure ('pos', [100 200 200 200]); % create the control to fill the figure h = actxcontrol ('MWSAMP.MwsampCtrl.1', [0 0 200 200], ... gcf, `sampev')
h = actxcontrol ('SELECTOR.SelectorCtrl.l', ... [0 0 200 200], f, {-600 'myclick'; -601 'my2click'; ... -605 'mymoused'}) h = actxcontrol ('SELECTOR.SelectorCtrl.l', ... [0 0 200 200], f, {'Click' 'myclick'; ... 'DblClick' 'my2click'; 'MouseDown' 'mymoused'})
ここで、イベントハンドラmyclick.m
, my2click.m
, mymoused.m
は、
function myclick(varargin) disp('Single click function') function my2click(varargin) disp('Double click function') function mymoused(varargin) disp('You have reached the mouse down function') disp('The X position is: ') varargin(5) disp('The Y position is: ') varargin(6)
セル配列の組を使って、モニターしたいすべてのイベントに対して同じイベントハンドラを使うことができます。応答時間は、コールバックスタイルを使うよりも良くなります。
h = actxcontrol('SELECTOR.SelectorCtrl.1', ... [0 0 200 200], f, {'Click' 'allevents'; ... 'DblClick' 'allevents'; 'MouseDown' 'allevents'})
function allevents(varargin) if (varargin{2} = -600) disp ('Single Click Event Fired') elseif (varargin{2} = -601) disp ('Double Click Event Fired') elseif (varargin{2} = -605) disp ('Mousedown Event Fired') end
![]() | ActiveXクライアントリファレンス | actxserver | ![]() |