Вверх ↑
Ответов: 1926
Рейтинг: 172
#1: 2019-07-19 16:56:59 ЛС | профиль | цитата
Netspirit писал(а):
Под "стандартной отрисовкой" следует понимать не вызов OldPaint, а то, что делает система, если сообщение WM_PAINT не будет обработано приложением.

Да, я так и понимаю.

   case Msg.message of
WM_PAINT: begin
DefWindowProc(Control.Handle,Msg.message,Msg.wParam,Msg.lParam);
if Msg.wParam = 0 then DC := BeginPaint(Control.Handle, PaintStruct) else DC := Msg.wParam;
if assigned(OldPaint) then OldPaint(Control, DC);
_hi_onEvent(fOnPaint, integer(DC));
if Msg.wParam = 0 then EndPaint(Control.Handle, PaintStruct);
end;
end;
Вот это не работает. DefWindowProc вообще не отрисовывает контрол, куда бы я эту строчку тут не поставил. Однако отрисовка происходит даже без DefWindowProc, если убрать BeginPaint - но тогда не получим DC.
Netspirit, можешь накидать какой-нибудь код, может, я чего не так делаю.
карма: 9
0
Редактировалось 2 раз(а), последний 2019-07-19 16:59:26