タイマ設定でカードを表示

CARD Object Class を使って、タイマ切り替えで49枚のカードを順に表示します。
C# でも カードを描画 を作成しています。

前田稔(Maeda Minoru)の超初心者のプログラム入門

プログラムの説明

  1. CARD Object Class は、前回と同じです。
  2. Main() プログラムです。
    Card.h を include して下さい。
    define でタイマの ID を定義します。
    CARD が CARD Object Class の定義です。
    Card_No は表示する Sprite(カードイメージ)の番号です。
        #include    "Card.h"
        #define     SAFE_DELETE(p)  { if (p) { delete (p);     (p)=NULL; } }
        #define     ID_TIMER    (WM_APP + 0)
    
        CARD        *Card= NULL;
        char        File[MAX_PATH]= "花札.bmp";
        int         Card_No= 0;
        
  3. WM_CREATE: で CARD Class をインスタンス化して、画像を入力します。
    SetTimer() でタイマ割り込み間隔を 100ミリ秒に設定します。
            case WM_CREATE:
                Card= new CARD(hWnd);
                if (Card->Load(File,10,5)==FALSE)
                {   PostMessage(hWnd,WM_CLOSE,0,0);
                    break;
                }
                SetTimer(hWnd,ID_TIMER,100,NULL);
                break;
        
  4. WM_PAINT: では Card->Show(Card_No,100,80); でカードを指定して描画するだけです。
            case WM_PAINT:
                hdc= BeginPaint(hWnd,&ps);
                Card->Show(Card_No,120,60);
                EndPaint(hWnd, &ps);
                break;
        
  5. WM_TIMER: でカードを切り替えます。
    49枚のカード表示が終わると WM_CLOSE をポストしてプログラムを終了します。
            case WM_TIMER:
                if (Card_No<48)
                {   Card_No++;
                    InvalidateRect(hWnd,NULL,FALSE);
                    break;
                }
                PostMessage(hWnd,WM_CLOSE,0,0);
                break;
        
  6. WM_CLOSE: でタイマを停止して、CARD Object を開放して下さい。
            case WM_CLOSE:
                KillTimer(hWnd,ID_TIMER);
                SAFE_DELETE(Card);
                DestroyWindow(hWnd);
                break;
        

【演習】

  1. プログラムを完成させて下さい。

超初心者のプログラム入門(Win32API C++)