如何使计时器在c++WM_PAINT中工作?我正在努力";打印";它通过Wm_Paint,因为目前我不知道添加计时器的其他方法,谷歌搜索也无济于事。
以下是我在CALLBACK
:中声明的内容
TCHAR s[10], str[20] = _T("Seconds: ");
static int t;
case WM_CREATE:
SetTimer(hwnd, 1, 1000, NULL);
以下是我如何绘制计时器:
hdc = BeginPaint(hwnd, &ps);
hBrush = CreateSolidBrush(g_color);
hPen = CreatePen(PS_NULL, 1, RGB(0, 0, 0));
holdPen = HPEN(SelectObject(hdc, hPen));
holdBrush = (HBRUSH)SelectObject(hdc, hBrush);
_tcscat(str + 9, _itot(t, s, 10));
TextOut(hdc, 10, 300, str, _tcsclen(str));
SelectObject(hdc, holdBrush);
SelectObject(hdc, holdPen);
DeleteObject(hPen);
DeleteObject(hBrush);
EndPaint(hwnd, &ps);
到目前为止,它只是打印出";秒:0〃;并停止更新。
好吧,为了让它发挥作用,我不得不在CALLBACK
函数中创建一个WM_TIMER
用例,最后它看起来是这样的:
//code above
case WM_TIMER:
t++;
InvalidateRect(hwnd, NULL, TRUE);
break;
//code below