我需要通过WM_PAINT逐步绘制一些图形。据我了解,我应该创建计时器来创建延迟。
这是我尝试的地图:
case WM_CREATE:
SetTimer(hWnd, 1, 10000, NULL);
break;
所以在这里,我有一个整洁的10秒计时器。
然后我做
case WM_TIMER:
MessageBeep(-1);
InvalidateRect(hWnd, NULL, TRUE);
break;
如何在WM_PAINT中执行计时器?我认为我的计时器应该一直工作,但是我根本听不到哔声。
这是我的WM_PAINT:
case WM_PAINT:
{
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hWnd, &ps);
a = sx / 2;
b = sy / 2;
R = 100;
SelectObject(hdc, blackPen);
MoveToEx(hdc, 0, b, NULL);
LineTo(hdc, sx, b);
MoveToEx(hdc, a, 0, NULL);
LineTo(hdc, a, sy);
MoveToEx(hdc, a, b, NULL);
SelectObject(hdc, redPen);
for (x = 0.0; x < 2 * 3, 14; x += 0.1) {
y = x + exp(2*x);
LineTo(hdc, x, y);
}
EndPaint(hWnd, &ps);
}
break;