0から始めるVisualStudio2022:ソフト開発塾
前回作った、テンプレートを利用して
時刻表示を行ってみた。
プロジェクト名は、Dialog006として
ソース dialog.cppに少し追加(WM_PAINT)
case WM_PAINT:
hdc = BeginPaint(hDlg, &ps);
mm_leng = GetTimeFormatA(LOCALE_SYSTEM_DEFAULT, TIME_FORCE24HOURFORMAT, NULL,NULL, mm_buff,sizeof(mm_buff));
if (mm_leng > 0) {
mm_leng--;
TextOutA(hdc, 0, 0, mm_buff, mm_leng);
}
EndPaint(hDlg, &ps);
break;
と、時刻表示ができた。
しかし、このままでは、表示時刻が変わらない!!
そこで、タイマー
case WM_INITDIALOG:
SetTimer(hDlg, IDT_TIMER1, 1000, (TIMERPROC)NULL);
break;
終了時に、タイマーを破棄するため
case WM_DESTROY:
KillTimer(hDlg, IDT_TIMER1);
break;
タイマーのイベントで、
InvalidateRect 関数で、WM_PAINT イベントを発生させる。
case WM_TIMER:
switch (wPara) {
case IDT_TIMER1:
InvalidateRect(hDlg,NULL,false);
break;
}
break;
はい!出来上がり。
#define IDT_TIMER1 1
Top 次