Помогите.
Я тут стал разбираться с DX. Хочется рисовать в окошке TWinControl.
Нормально, кнанву рисую .. но почему то Lazarus перерисовывает мне задний фон.
Точнее фон родителя окна.. почему то постоянно мне канву из DX перекрашивает в фонюю
стал отлаживать код. Сталкнулся с интересной функцией.
GetNeedParentPaint(AWindowInfo:PWin32WindowInfo;AWinContrlol:TWinContrlol):Boolean; в win32callback.inc
Все там же TWindowProcHelper.SendPaintMessages(ControlDC:HDC);
Походу дела вызывает эту функцию главное окно. Перехватить красиво обычными методами не удается, а хукать TWinProc у окна не правильно.
Можно ли от этого избавится? Существуют ли волшебные overlapping галочки?
Перекрытие отрисовки заднего фона.
Модератор: Модераторы
Вроде как если у родителя выставлен WS_CLIPCHILDREN оно не должно отрываться на детках.
может контрол сам себе фон рисует? если так, то переопределение EraseBackground должно спасти
Добавлено спустя 2 минуты 6 секунд:
Для лазаря есть аналог TOpenGLControl на DX?
может контрол сам себе фон рисует? если так, то переопределение EraseBackground должно спасти
Добавлено спустя 2 минуты 6 секунд:
Для лазаря есть аналог TOpenGLControl на DX?
zub писал(а):Для лазаря есть аналог TOpenGLControl на DX?
Нема, есть только хендлы DX9/DX10/DX11/DX12
https://github.com/CMCHTPC/DelphiDX12
Вообще DX9 <> DX10 <> DX11 <> DX12 - они могут ломатся..
zub писал(а):Вроде как если у родителя выставлен WS_CLIPCHILDREN оно не должно отрываться на детках.
я сделал без него..
-
ElectroGuard
- новенький
- Сообщения: 71
- Зарегистрирован: 03.06.2016 11:10:22
Код: Выделить всё
procedure WMEraseBkgnd(var Message: TWmEraseBkgnd); message WM_ERASEBKGND;
procedure TControl.WMEraseBkgnd(var Message: TWmEraseBkgnd);
begin
Message.Result := 1;
end;
?
WMEraseBkgnd не спасает от мерцания.. в итоге виден GUI фон элементов.
не.. там идет собственный TWinProc и перекрытие LM_PAINT.
Добавлено спустя 3 минуты 1 секунду:
Пока "завис" - думаю отказатся от TFPImage использовать AggPas.
Добавлено спустя 1 минуту 52 секунды:
Нет работы с градиентами, TTypeFree непонятно как работает.
не.. там идет собственный TWinProc и перекрытие LM_PAINT.
Добавлено спустя 3 минуты 1 секунду:
Пока "завис" - думаю отказатся от TFPImage использовать AggPas.
Добавлено спустя 1 минуту 52 секунды:
Нет работы с градиентами, TTypeFree непонятно как работает.
