SetTimer

2018/07/03

SetTimerは、タイマーをセットするWindowsAPI・・・。

SetTimer 関数

第3引数に、タイマーによるイベントが発生する時間をミリ秒で指定すると、その時間ごとにウィンドウメッセージWM_TIMERが発生し、そこで特定の処理をすることができる・・・。
また、第4引数にコールバック関数を渡して、タイマーによるイベント時にそれを処理するという方法もある・・・。

今回は、メニューを用意し、[Timer1]-[Start]を選択したら、下に表示された数字が0から1秒ずつ1カウントされていくような処理を作る・・・。

resource.hは、

どのタイマーかを識別するためのID、ID_TIMER1を定義・・・。

そして、SetTimer.rcは、

と[Timer1]、その下に[Start]というメニュー項目を作る・・・。

SetTimer.cppのWM_COMMANDで、

[Start]が選択されたら、第2引数にID_TIMER1、第3引数に1000(ミリ秒)を指定してSetTimer・・・。
これで1秒ごとにWM_TIMERが発生する・・・。

WM_TIMERは、

1秒ごとにカウントするスタティック変数countを1増やす・・・。
そして、InvalidateRectで画面を更新・・・。

WM_PAINTは、

countの値を文字列にして、TextOutで描画・・・。

実行すると、

f:id:BG1:20151111144853p:plain

最初は0、

f:id:BG1:20151111144918p:plain

[Start]を選択・・・。

f:id:BG1:20151111144937p:plain

1秒ごとに1増えていくのがわかる・・・。

Sample/SetTimer.cpp at master · bg1bgst333/Sample · GitHub
Sample/resource.h at master · bg1bgst333/Sample · GitHub
Sample/SetTimer.rc at master · bg1bgst333/Sample · GitHub