目次 - API(機能別) - ディスプレイとウィンドウ - SDL_WindowEvent

# SDL_WindowEvent

ウィンドウイベントの情報の構造体

## フィールド

Uint32 | type | SDL_WINDOWEVENT
Uint32 | timestamp | イベントのタイムスタンプ
Uint32 | windowID | 関連のあるウィンドウ
Uint8 | event | SDL_WindowEventID
Sint32 | data1 | イベントによって異なるデータ
Sint32 | data2 | イベントによって異なるデータ

## サンプルコード

``

    void PrintEvent(const SDL_Event * event)
    {
        if (event->type == SDL_WINDOWEVENT) {
            switch (event->window.event) {
            case SDL_WINDOWEVENT_SHOWN:
                SDL_Log("ウィンドウ %d が見えるようになった", event->window.windowID);
                break;
            case SDL_WINDOWEVENT_HIDDEN:
                SDL_Log("ウィンドウ %d が見えないようになった", event->window.windowID);
                break;
            case SDL_WINDOWEVENT_EXPOSED:
                SDL_Log("ウィンドウ %d が現れた", event->window.windowID);
                break;
            case SDL_WINDOWEVENT_MOVED:
                SDL_Log("ウィンドウ %d が %d,%d へ移動した", event->window.windowID, event->window.data1, event->window.data2);
                break;
            case SDL_WINDOWEVENT_RESIZED:
                SDL_Log("ウィンドウ %d の大きさが %dx%d になった", event->window.windowID, event->window.data1, event->window.data2);
                break;
            case SDL_WINDOWEVENT_SIZE_CHANGED:
                SDL_Log("ウィンドウ %d の大きさが %dx%d に変わった", event->window.windowID, event->window.data1, event->window.data2);
                break;
            case SDL_WINDOWEVENT_MINIMIZED:
                SDL_Log("ウィンドウ %d が最小化された", event->window.windowID);
                break;
            case SDL_WINDOWEVENT_MAXIMIZED:
                SDL_Log("ウィンドウ %d が最大化された", event->window.windowID);
                break;
            case SDL_WINDOWEVENT_RESTORED:
                SDL_Log("ウィンドウ %d 通常の大きさと位置になった", event->window.windowID);
                break;
            case SDL_WINDOWEVENT_ENTER:
                SDL_Log("マウスがウィンドウ %d に入った", event->window.windowID);
                break;
            case SDL_WINDOWEVENT_LEAVE:
                SDL_Log("マウスがウィンドウ %d から出た", event->window.windowID);
                break;
            case SDL_WINDOWEVENT_FOCUS_GAINED:
                SDL_Log("ウィンドウ %d がキーボードフォーカスを得た", event->window.windowID);
                break;
            case SDL_WINDOWEVENT_FOCUS_LOST:
                SDL_Log("ウィンドウ %d がキーボードフォーカスを失った", event->window.windowID);
                break;
            case SDL_WINDOWEVENT_CLOSE:
                SDL_Log("ウィンドウ %d が閉じた", event->window.windowID);
                break;
    #if SDL_VERSION_ATLEAST(2, 0, 5)
            case SDL_WINDOWEVENT_TAKE_FOCUS:
                SDL_Log("ウィンドウ %d がフォーカスを与えられた", event->window.windowID);
                break;
            case SDL_WINDOWEVENT_HIT_TEST:
                SDL_Log("ウィンドウ %d が特殊なヒットテストを行った", event->window.windowID);
                break;
    #endif
            default:
                SDL_Log("ウィンドウ %d の不明なイベント %d", event->window.windowID, event->window.event);
                break;
            }
        }
    }

## 詳細

SDL_WindowEventはSDL_Eventのメンバの1つで, イベントのtypeがSDL_WINDOWEVENTの場合に使う. イベントのwindowフィールドを経由してアクセスする必要がある.

## 関連項目(列挙体)

SDL_EventType
SDL_WindowEventID

## SDL Wikiへのリンク

SDL_WindowEvent - SDL Wiki