![]() ![]() ![]()
|
BREW C++ ライブラリ & GUI フレームワーク & XML ミドルウェア : SophiaFramework 4.1 |
GUI フレームワークを使わない SFC アプリでは、アプリ クラスは SFCApplication を継承します。
![]() |
SFR アプリの場合 |
|---|---|
GUI フレームワークを使う SFR アプリでは SFRApplication を継承します。 | |
SFC アプリでは、ハンドラ関数の宣言に HANDLER_DECLARE を使いません。 例えば、キー ハンドラ OnKey 関数は、通常の関数と同じように宣言します。
例 4.2. HelloWorld アプリ クラスの定義
// // HelloWorld.hpp // #ifndef __HELLOWORLD_HPP #define __HELLOWORLD_HPP #include <SophiaFramework.hpp> #include "HelloWorld.bid" // // HelloWorld アプリ クラス // SFMTYPEDEFCLASS(HelloWorld) class HelloWorld : public SFCApplication { SFMSEALCOPY(HelloWorld) public: static SFCInvokerPtr Factory(Void); private: HelloWorld(Void); virtual ~HelloWorld(Void); virtual Bool Invoke(SFXEventConstRef event); Bool OnKey(UInt16 key); }; #endif // __HELLOWORLD_HPP //
Invoke 関数は SFC アプリのイベント ハンドラです。 Invoke 関数は、受信したイベントに対応するハンドラ関数を呼び出します。
イベントは Invoke 関数の引数として渡され、イベントの type に応じて、ハンドラ関数が呼び出されます。 キー イベントの場合、キー ハンドラ OnKey 関数が呼び出されます。
例 4.3. SophiaFramework AppWizard が自動生成するイベント ハンドラ Invoke 関数
Bool HelloWorld::Invoke(SFXEventConstRef event)
{
Bool result(false);
switch (event.GetType()) {
case SFEVT_KEY: // キー イベントのとき
result = OnKey(event.GetP16());
break;
}
if (!result) {
result = SFCApplication::Invoke(event);
}
return result;
}
例 4.4. SophiaFramework AppWizard が自動生成するキー ハンドラ OnKey 関数
Bool HelloWorld::OnKey(UInt16 key)
{
// キーイベントの処理
switch (key) {
case AVK_SELECT: // セレクトキーが押されたとき
Terminate(); // アプリを終了する
return true;
}
return false;
}
SFC アプリではイベント ハンドラを独自に実装するので、コンストラクタではハンドラ関数を登録しません。
|
Copyright (C) 2002 - 2008 Sophia Cradle, Inc. All Rights Reserved. |
![]() ![]() ![]()
|