TimerProc

WM_TIMERではなく、SetTimerにコールバック関数をセットして、そこでタイマーイベントの処理を実行することもできる・・・。
コールバック関数TimerProcについては以下を参照のこと・・・。

TimerProc 関数

2つのタイマーを用意して、カウントするペースを変えてみる・・・。

resource.hは

ID_TIMER1, ID_TIMER2, と2つのタイマーIDを用意・・・。

TimerProc.rcは、

メニューの[Timer1]-[Start]と、[Timer2]-[Start]を用意・・・。

TimerProcは1つ・・・。
countとcount2というカウントするスタティック変数は2つ・・・。

メニューTimer1(ID_ITEM_TIMER1_START)のStartを選択されたら、1000ミリ秒(1秒)でID_TIMER1をセット・・・。
メニューTimer2(ID_ITEM_TIMER2_START)のStartを選択されたら、10000ミリ秒(10秒)でID_TIMER2をセット・・・。
どちらも第4引数のコールバック関数はTimerProcでいい・・・。

TimerProcは、

idEventで、どのタイマーIDのイベントが発生したかわかるので、それで振り分ける・・・。
ID_TIMER1ならcount、ID_TIMER2ならcount2を増やす・・・。
カウントを増やしたら、画面を更新・・・。

WM_PAINTで、それぞれのカウントを表示・・・。

ちなみにWM_TIMERは、

何もしていない・・・。

f:id:BG1:20151112125108p:plain

最初この状態で、

f:id:BG1:20151112125242p:plain

Timer1をStart・・・。

f:id:BG1:20151112125354p:plain

上の数値が1秒ずつカウントされる・・・。

f:id:BG1:20151112125519p:plain

上が10となったところで、Timer2をStart・・・。

f:id:BG1:20151112125820p:plain

Timer2は、Timer1が10の時に開始で10秒ごとなので、Timer1が20の時の途中で1になる・・・。
(ここでは21の時は確実に1なので、そこでスクリーンショットを撮っている・・・。)

Timer1は1秒ごと、Timer2は10秒ごとに発生していることがわかる・・・。

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