| 外部インタフェース/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 | ![]() |