我正在尝试编写一个自定义TGraphicControl后代,允许用户在VCL表单上嵌入SDL渲染表面.这将提供一种在表单中显示SDL动画的简单方法.
显然,使用Paint方法重绘了TGraphicControl.这种情况多久被召唤一次?只有当某些事情发生在使控件无效时,或者还有其他事情可以调用它吗?它如何与自己绘图的东西相互作用?
当窗口控件在下面重绘时,将调用非窗口控件的Paint方法(TGraphicControl).当处理窗口控件的WM_PAINT消息时会发生这种情况.
窗口控件在其整个区域或部分区域无效时重绘,或者在Z顺序中较高的另一个窗口关闭或移动时重绘,以便窗口暴露并需要重新绘制.
使TGraphicControl无效将计算窗口化父控件的相应部分,并使该部分无效.
如果你需要一个TGraphicControl重绘自己,那么你需要在它或它的父控件上调用Invalidate.没有其他方法可以重绘.