Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.RU > C/C++: Прочее > CPaintDC & CClientDC


Автор: sergeyMJ 29.12.01, 13:23
Господа чем отличаются CPaintDC и CClientDC
Я заметил, что если в OnPaint методе начинаю
рисовать через CClientDC, то он посылает WM_PAINT. Где какой класс нужно использовать
Спасибо

Автор: DmitryRyvkin 30.12.01, 03:48
насколько я помню CPaintDC использоать ТОЛЬКО в обработчике OnPaint

Автор: ADK 03.01.01, 03:26
Вот господа, кстати, один из недостатков ОО библиотек, обёртывающих API. Если люди API не знают, они могут написать такую прогу.... У-у-у...
Как обрабатывается WM_PAINT на API?
PAINTSTRUCT ps;
HDC dc = BeginPaint(hwnd, &ps);
// Рисуем в DC
EndPaint(hwnd, &ps);
CPaintDC как раз в конструкторе вызывает BeginPaint, в деструкторе EndPaint и потому может использоваться только в обработчике WM_PAINT.
CClientDC вызывает GetDC и ReleaseDC, поэтому не может применяться в OnPaint, а так хоть где...

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)