我想在屏幕上显示一些可变的值。我有以下代码
void CMainWnd::OnPaint()
{
CPaintDC dc(this);
CRect rcText( 0, 0, 500 ,500 );
wchar_t text[36];
unsigned int num = server->GetNumClients(num);
wsprintf(text, L"Number of connected clients: %d", num);
dc.DrawText(text, &rcText, DT_LEFT);
CFrameWnd::OnPaint();
}
void CMainWnd::OnTimer(UINT timerID)
{
SendMessage(WM_PAINT, 0, 0);
}
它在窗口出现时绘制文本。但是在接下来的通话中,当文本不同时,屏幕上的文本并没有改变。使用调试器,我可以看到调用了 OnPaint, 文本已更改,但在我的窗口中文本保持不变。GetLastError() 返回 0。我想我错过了 DrawText 工作原理的重要内容。最后我尝试调用 UpdateWindow() ,但没有任何改变。由于某种原因屏幕没有更新..