変更可能な値を画面に表示したい。次のコードがあります
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() を呼び出そうとしましたが、何も変わりませんでした。なぜか画面が更新されない…