我有一个我创建的组件,它在TWinControl中嵌入了一个硬件加速的渲染器,因此您可以将它放在一个表单上.它在大多数情况下都能很好地工作,但是如果我尝试调整控件的大小,一切都会变为空白,直到消息循环运行并为渲染器调用WndProc,渲染器驻留在外部DLL中.这意味着我需要在代码中调整控件大小后显式调用Application.ProcessMessages,我知道这被认为是不好的做法.
有没有办法在控件本身放置一些逻辑,以便在我更改控件的大小时调用DLL中的WndProc,所以我不需要调用ProcessMessages来获取正确的东西?
解决方法
您可以调用TWinControl.Update,这应该只是SendMessage一个WM_PAINT事件,因此您不会处理任意消息.