ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

unregisterevent

実行時に COM オブジェクト イベントに関連付けられたイベント ハンドラーの登録を解除する

構文

unregisterevent(h,eventhandler)

説明

unregisterevent(h,eventhandler) は、対応するイベントから特定のイベント ハンドラー ルーチンの登録を解除します。一度イベントの登録を解除すると、オブジェクトはイベントに反応しません。

コントロールの作成後は、常時イベントの登録を解除できます。セル配列である eventhandler 引数は、イベントとイベント ハンドラーの両方を指定します。

unregisterevent(h,{'event_name',@event_handler});

イベントの名前を使用して、eventhandler 引数でイベントを指定します。eventhandler 引数で使用される文字列は、大文字と小文字を区別しません。関数 unregisterevent は数値イベント識別子を受け入れません。

COM 関数は、Microsoft® Windows® システムでのみ使用可能です。

コントロールのイベントの登録を解除するには

  1. mwsamp コントロールを作成して、すべてのイベントを同じコールバック ルーチン sampev に登録します。各イベントに使用されるイベント ハンドラーを参照するには、関数 eventlisteners を使用します。この場合、起動される個々のイベントは、sampev.m を呼び出します。

    f = figure('position',[100 200 200 200]);
    h = actxcontrol('mwsamp.mwsampctrl.2',...
        [0 0 200 200],f,'sampev');
    eventlisteners(h)
    
    ans = 
        'Click'         'sampev'
        'DblClick'      'sampev'
        'MouseDown'     'sampev'
        'Event_Args'    'sampev'
  2. dblclick イベントの登録を解除します。ここで、関数 eventlisteners を使って登録されているイベントをリストすると、dblclick が登録されていないことがわかります。コントロールは、その上でマウスをダブルクリックしても何の反応もありません。

    unregisterevent(h,{'dblclick' 'sampev'});
    eventlisteners(h)
    
    ans = 
        'Click'         'sampev'
        'MouseDown'     'sampev'
        'Event_Args'    'sampev'
  3. ここで、myclickmy2click に別々のイベント ハンドラーを使用して、clickdblclick イベントを登録します。

    unregisterallevents(h);
    registerevent(h,{'click' 'myclick';'dblclick' 'my2click'});
    eventlisteners(h)
    
    ans = 
        'click'       'myclick' 
        'dblclick'    'my2click'
    
  4. セル配列に、イベント名とそのハンドラー ルーチンを指定することで、次の同じイベントの登録を解除します。関数 eventlisteners は、空のセル配列を返します。これは、mwsamp コントロールにイベントが登録されていないことを意味しています。

    unregisterevent(h,{'click' 'myclick'; 'dblclick' 'my2click'});
    eventlisteners(h)
    
    ans = 
         {}
    

Microsoft Excel® ワークブックのイベントの登録を解除します。

  1. Workbook オブジェクトを作成し、イベント ハンドラー ルーチンで 2 つのイベント EvtActivateHndlrEvtDeactivateHndlr を登録します。

    myApp = actxserver('Excel.Application');
    wbs = myApp.Workbooks;
    wb = Add(wbs);
    registerevent(wb,{'Activate' 'EvtActivateHndlr';...
        'Deactivate' 'EvtDeactivateHndlr'})
    eventlisteners(wb)
    ans = 
        'Activate'      'EvtActivateHndlr'  
        'Deactivate'    'EvtDeactivateHndlr'

    MATLAB® は、対応するイベント ハンドラーと共にイベントを示します。

  2. 次に Deactivate イベント ハンドラーの登録を解除します。

    unregisterevent(wb,{'Deactivate' 'EvtDeactivateHndlr'})
    eventlisteners(wb)
    ans = 
        'Activate'    'EvtActivateHndlr'

    MATLAB は、対応するイベント ハンドラーと共に登録されたまま (Activate) のイベントを示します。

この情報は役に立ちましたか?