Так у меня есть этот код, чтобы нарисовать прямоугольник на моем экране:Предотвращение Мерцание При рисовании
LOGBRUSH m_LogBrush;
HBRUSH m_hBrush;
HPEN m_hPen;
HDC m_hDC;
void DrawBox(int x, int y, int r, int g, int b, int size, int thickness)
{
// Brush style to hollow
m_LogBrush.lbStyle = BS_NULL;
// Create a logical brush and select into the context
m_hBrush = CreateBrushIndirect(&m_LogBrush);
SelectObject(m_hDC, m_hBrush);
// Create a logical pen and select into the context
m_hPen = CreatePen(PS_SOLID, thickness, RGB(r, g, b));
SelectObject(m_hDC, m_hPen);
// Draw the rectangle
Rectangle(m_hDC, (x - size/2), (y - size/2), (x + size/2), (y + size/2));
// Remove the object
DeleteObject(m_hBrush);
DeleteObject(m_hPen);
}
Однако, когда вызывается несколько раз внутри цикла она мерцает на экране. Мне было интересно, есть ли способ предотвратить это мерцание?
Любая помощь будет оценена по достоинству.
Благодаря
Двойная буферизация ... –
Как бы я это сделал? – Steven
Вам не нужно дублировать буфер. Вы не указали соответствующий код. Показать больше. Покажите полную программу, которая мерцает. –