前のページ次のページ上に戻るホーム SophiaFramework UNIVERSE 5.3

25.4. SFR レスポンダシステム用マクロ(旧レスポンダシステム)

25.4.1. 【重要】SophiaFramework UNIVERSE 6.0 以降廃止予定

SFR レスポンダシステム(旧レスポンダシステム)は、SophiaFramework UNIVERSE 6.0 以降廃止されます。

これから、新たに GUI アプリを開発する場合は、SFY レスポンダシステム(新レスポンダシステム)を使用してください。

参照 : SFY レスポンダシステム用マクロ(新レスポンダシステム) | SFY レスポンダシステム(新レスポンダシステム)

25.4.2. イベントハンドラ宣言用マクロ

イベントハンドラは HANDLER_DECLARE_ で始まる名前のマクロで宣言します。

表 25.42. イベントハンドラ宣言用マクロ

マクロ 意味
HANDLER_DECLARE_VOIDRENDER 描画ハンドラ
HANDLER_DECLARE_VOIDSTART アプリ開始ハンドラ
HANDLER_DECLARE_BOOLSTART アプリ開始ハンドラ
HANDLER_DECLARE_VOIDSTOP アプリ終了ハンドラ
HANDLER_DECLARE_BOOLSTOP アプリ終了ハンドラ
HANDLER_DECLARE_VOIDRESUME レジュームハンドラ
HANDLER_DECLARE_BOOLRESUME レジュームハンドラ
HANDLER_DECLARE_VOIDSUSPEND サスペンドハンドラ
HANDLER_DECLARE_BOOLSUSPEND サスペンドハンドラ
HANDLER_DECLARE_VOIDDIALOG ダイアログハンドラ
HANDLER_DECLARE_BOOLDIALOG ダイアログハンドラ
HANDLER_DECLARE_VOIDMENU メニューハンドラ
HANDLER_DECLARE_BOOLMENU メニューハンドラ
HANDLER_DECLARE_VOIDCONTROL コントロールハンドラ
HANDLER_DECLARE_BOOLCONTROL コントロールハンドラ
HANDLER_DECLARE_VOIDVOID 汎用ハンドラ
HANDLER_DECLARE_BOOLVOID 汎用ハンドラ
HANDLER_DECLARE_VOIDEVENT 汎用ハンドラ
HANDLER_DECLARE_BOOLEVENT 汎用ハンドラ
[Note] 注意
引数はハンドラ名です。

25.4.3. イベントハンドラ実装用マクロ

イベントハンドラは HANDLER_IMPLEMENT_ で始まる名前のマクロで実装します。

表 25.43. イベントハンドラ実装用マクロ

マクロ 意味 第3引数 第4引数 第5引数
HANDLER_IMPLEMENT_VOIDRENDER 描画ハンドラ graphics ( グラフィック オブジェクト ) なし なし
HANDLER_IMPLEMENT_VOIDSTART アプリ開始ハンドラ environment なし なし
HANDLER_IMPLEMENT_BOOLSTART アプリ開始ハンドラ environment なし なし
HANDLER_IMPLEMENT_VOIDSTOP アプリ終了ハンドラ quitable なし なし
HANDLER_IMPLEMENT_BOOLSTOP アプリ終了ハンドラ quitable なし なし
HANDLER_IMPLEMENT_VOIDRESUME レジュームハンドラ environment なし なし
HANDLER_IMPLEMENT_BOOLRESUME レジュームハンドラ environment なし なし
HANDLER_IMPLEMENT_VOIDSUSPEND サスペンドハンドラ reason info なし
HANDLER_IMPLEMENT_BOOLSUSPEND サスペンドハンドラ reason info なし
HANDLER_IMPLEMENT_VOIDDIALOG ダイアログハンドラ result dialog(へのポインタ) なし
HANDLER_IMPLEMENT_BOOLDIALOG ダイアログハンドラ result dialog(へのポインタ) なし
HANDLER_IMPLEMENT_VOIDMENU メニューハンドラ result menu(へのポインタ) なし
HANDLER_IMPLEMENT_BOOLMENU メニューハンドラ result menu(へのポインタ) なし
HANDLER_IMPLEMENT_VOIDCONTROL コントロールハンドラ result control(へのポインタ) なし
HANDLER_IMPLEMENT_BOOLCONTROL コントロールハンドラ result control(へのポインタ) なし
HANDLER_IMPLEMENT_VOIDVOID 汎用ハンドラ なし なし なし
HANDLER_IMPLEMENT_BOOLVOID 汎用ハンドラ なし なし なし
HANDLER_IMPLEMENT_VOIDEVENT 汎用ハンドラ event(イベントオブジェクト) なし なし
HANDLER_IMPLEMENT_BOOLEVENT 汎用ハンドラ event(イベントオブジェクト) なし なし
[Note] 注意
第 1 引数は所属クラス名、第 2 引数にはハンドラの名前です。第 3 引数以降はハンドラによって異なります。
[Note] 汎用ハンドラとは

「セレクトキーのみのハンドラを作成する」など、開発者の用途に合わせて任意に作成できるハンドラです。

例 25.37. 汎用ハンドラ使用例

// MyWindow クラスの定義
SFMTYPEDEFCLASS(MyWindow)
class MyWindow : public SFRTitleWindow {
    SFMSEALCOPY(MyWindow)
public:
    MyWindow(Void) static_throws;
    virtual ~MyWindow(Void)
    
   // 汎用ハンドラの宣言
   HANDLER_DECLARE_VOIDVOID(OnSelectKey)
};

// 汎用ハンドラの登録
// セレクトキーのみのハンドラを登録する
RegisterHandler(SFEVT_KEY, AVK_SELECT, HANDLER_AFTER, HANDLER_FUNCTION(OnSelectKey));

// 汎用ハンドラの実装
// セレクトキーのみなので、イベントパラメータを取得しない
HANDLER_IMPLEMENT_VOIDVOID(MyWindow, OnSelectKey)
{
    // アプリを終了する
    Terminate();
    return;
}

25.4.4. イベントハンドラ関数登録用マクロ

イベントハンドラ関数は HANDLER_ で始まる名前のマクロで登録します。

表 25.44. イベントハンドラ関数登録用マクロ

マクロ 意味
HANDLER_FUNCTION イベントハンドラ関数へのポインタとリファレンス値を渡します。
HANDLER_NULL 実際のイベントハンドラ関数は呼び出されませんが、イベントは処理されたこととみなします。
[Note] 注意
引数はイベントハンドラ関数名を指定します。