SACT2 for System4.x

REGISTER_MSG_KEY_WAIT_CALLBACK

メッセージ表示中やキーウェイト中にコールバック処理を 埋め込むための関数を設定します

void REGISTER_MSG_KEY_WAIT_CALLBACK(sact_msg_key_wait_callback_t func)

引数

func

「bool sact_msg_key_wait_callback_t(void)」型の関数。

戻り値

なし

解説

この関数で登録した関数は、SACT内部のメッセージ表示処理中やSACT_A関数 でのキー入力待ち状態等でコールバック呼び出しされます。

登録された関数内で、マウスカーソル移動やクリックしたかどうかのチェック などを行うことで、メッセージウィンドウ周辺に配置したシステムボタン等 の処理を行えます。

コールバック関数でクリック処理を行った場合は、戻り値としてfalseを 返して下さい。通常はtrueを返して下さい。

サンプルコード

void Test(void)
{
    // コールバック関数の登録
    REGISTER_MSG_KEY_WAIT_CALLBACK(&メッセージコールバック);

}

bool メッセージコールバック(void)
{
    // クリックされたか調べる
    if (!KEY_IS_DOWN(VK_LBUTTON)) return true;

    // マウスポインタ位置を取得
    int nX, nY;
    if (!MOUSE_GET_POS(nX, nY)) return true;

    // 指定スプライト上にマウスポインタ位置があるか調べる
    if (!SP_IN_POINT(nSp, nX, nY)) return true;

    // 指定スプライト上でクリックされたので、
    // なんらかの処理を行う
    何らかの処理();

    // キー押下状態をクリアする
    KEY_CLEAR();

    // キー押下処理をフックしたので、falseを返す
    return false;

}