Шаг 154 - CWnd::BeginPaint

CDC* BeginPaint( LPPAINTSTRUCT lpPaint );

Возвращаемое значение
Идентифицирует контекст устройства для CWnd. Указатель может быть временный и не должен быть сохранен вне области EndPaint.

Параметры

lpPaint
Указатель на структуру PAINTSTRUCT, которая должна получить информацию для рисования.

Замечания
Готовит CWnd к рисованию и заполняет PAINTSTRUCT структуру данных информацией относительно рисования. Структура рисования содержит RECT структуру данных, которая имеет самый маленький прямоугольник, который полностью включает область модификации и флажок, которые определяют будет ли фон уничтожен.
Область модификации устанавливается функциями Invalidate, InvalidateRect, или InvalidateRgn и системой после того как это изменены размеры, сделаны перемещения, создание, прокрутка окна или выполнены любые другию операции которые воздействует на клиентскую область. Если область модификации отмечена для стирания, BeginPaint посылает WM_ONERASEBKGND сообщение.
Не вызовайте метод BeginPaint за исключением в ответ на WM_PAINT сообщение. Каждое обращение к методу BeginPaint должно иметь обращение к методу EndPaint. Если символ каретки находится в области, которая будет окрашена, метод BeginPaint автоматически скрывает символ катерки чтобы предотвратить его уничтожение.

Пример

// Использовать BeginPaint и EndPaint при ответе на WM_PAINT сообщение
// Альтернативный метод состоит в том, чтобы использовать CPaintDC вместо 
// BeginPaint и EndPaint

void CMyView::OnPaint() 
{
	PAINTSTRUCT ps;
	CDC* pDC = BeginPaint(&ps);
	pDC->Rectangle(CRect(0, 0, 100, 100));
	EndPaint(&ps);
	// Не вызовите CVIEW:: OnPaint () для сообщений рисования
}

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 25.12.2001