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编辑过]