У меня есть компонент, который я создал, который встраивает аппаратно ускоренный рендерер в TWinControl, таким образом, можно поместить его в форму. Это работает вполне прилично в большинстве случаев, но если я пытаюсь изменить размер управления, все идет пробел, пока цикл сообщения не выполняет и называет WndProc для рендерера, который размещается во внешнем DLL. Это означает, что я должен назвать Приложение. ProcessMessages явно после того, как я изменил размер управления в коде, который я знаю, считают плохой практикой.
Там какой-либо путь состоит в том, чтобы поместить некоторую логику в само управление, чтобы заставить его вызвать WndProc в DLL, когда я изменяю размер управления, таким образом, я не должен буду называть ProcessMessages, чтобы заставить материал представлять право?
Вместо этого можно вызвать TWinControl.Update
, который должен просто отправить сообщение событию WM_PAINT, так что вы не обрабатываете произвольные сообщения.