に点滅:は私がのOnPaintイベントにサブスクライブしていCWindクラスの子供を持っているのOnPaint
BEGIN_MESSAGE_MAP(MyListBox, CWnd)
ON_WM_PAINT()
END_MESSAGE_MAP()
のOnPaintハンドラで、私は窓に簡単なものを描く場合は、ボーダーのように、すべてが良いです。しかし、もし私がSleep(50);
を追加すると(私はいくつかのハード描画操作をシミュレートします)、私のウィンドウが点滅します。私はこのことがなぜ起こるのか理解できません...問題は、OnPaint関数が頻繁に呼び出され、約2〜3回です。
更新:私はダブルビフェリングを使用しています。まず、PaintDeviceContentにウィンドウコンテンツを描画し、このDCをウィンドウのDCにコピーします。
アップデート2:ここにコードがある:まだ描画完了していないものを表示しようとしているので、
void CDirectionsListBox::OnPaint()
{
CRect rectClient;
GetClientRect(rectClient);
CPaintDC dc(this); // device context for painting
CDC DCMem;
DCMem.CreateCompatibleDC(&dc);
// Draw window here, workign with DCMem
dc.BitBlt(0, 0, rectClient.Width(), rectClient.Height(), &DCMem, 0, 0, SRCCOPY);
}
デバイスコンテキストをコピーするコードを示してください。 – dwo