Views Foundation > ActiveX コントロールをグラフィック・オブジェクトとして Rogue Wave Views アプリケーションに追加する > 例を使った Rogue Wave Views アプリケーションの説明 > 手順 3:オブジェクト・インタラクターの追加
 
手順 3:オブジェクト・インタラクターの追加
この手順では、オブジェクト・インタラクター IlvGraphicComAdapterInteractor の使用法を示します (このクラスは、ヘッダー•ファイル ilviews/windows/comgint.h で定義されます)。たとえグラフィック・オブジェクトへの変換時でも、これによってコントロールと (いくらか制約があるにせよ) 対話できます。実際の作業は、IlvGraphicComAdapterInteractor のインスタンスを、 関数 AttachInteractorAccelerator によって実行される IlvGraphicCOMAdapter オブジェクトに付加するだけです。
void
AttachInteractorAccelerator(IlvManager* man,
IlvView*,
IlvEvent& ev,
IlvAny arg)
{
// The arg parameter is actually an object interactor.
IlvManagerObjectInteractor* inter =
ILVREINTERPRETCAST(IlvObjectInteractor*, arg);
// Gets the object above which is the mouse pointer.
IlvGraphic* graphic = man->lastContains(IlvPoint(ev.x(), ev.y()));
// Any object?
 
if (graphic) {
// Is it an IlvGraphicCOMAdapter?
IlvGraphicCOMAdapter* adapt=
ILVDYNAMICCAST(IlvGraphicCOMAdapter*, graphic);
 
if (adapt) {
// Attaches the interactor to the object.
adapt->setInteractor(inter);
}
}
}
IlvGraphicComAdapterInteractor オブジェクトは、関数のパラメーターとして与えられ、関数 ActiveXGraphicAdapter::specificInitialization に割り当てられています。
_objectInteractor = new IlvGraphicComAdapterInteractor;
// Adds an accelerator in order to attach an object interactor to the
// control under the mouse pointer.
grapher->addAccelerator(AttachInteractorAccelerator,
IlvKeyUp,
IlvCtrlChar('b'),
0,
_objectInteractor);

Version 6.0
Copyright © 2015, Rogue Wave Software, Inc. All Rights Reserved.