WndProc如何刷新动态字符
程序代码:LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_PAINT:
{
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hWnd, &ps);
.........
SYSTEMTIME st;
GetLocalTime(&st);
TCHAR cha[9] = {};
swprintf_s(cha, _T("%hu%hs%hu%hs%hu"), st.wHour, ":", st.wMinute, ":", st.wSecond);
//InvalidateRect(hWnd, NULL, true);
DrawText(hdc, cha, -1, &rect, DT_WORDBREAK);
//Sleep(1000);
.........
}
}
}为什么DrawText放在 switch (message)循环里不会重复打印时间st.wSecond变化啊?
加上InvalidateRect后,清除太快,直接都看不到显示了。
Sleep(1000)虽然能显示变化,但整个循环每1秒都会卡定。
要用什么方法刷新动态字符呢?
[此贴子已经被作者于2023-4-4 08:48编辑过]


rjsp版主亲授