我有一个TFrame
带有一些控件的控件,以及一个TPanel
用于TPaintBox
绘制视频的容器。
当我调整框架大小时,由于臭名昭著的背景擦除,油漆盒上的图像会闪烁。
我用谷歌搜索了几个小时并尝试了所有方法(将 PaintBox设置ControlStyle
为csOpaque
,将面板设置Brush
为,将面板bsClear
更改为双缓冲,将面板设置FullRepaint
为 false 等),但唯一能解决问题的是WM_ERASEBKGND
在我的框架中截取消息:
void __fastcall TFrameSample::WndProc(TMessage &Message)
{
if (Message.Msg == WM_ERASEBKGND)
Message.Result = 1;
else
TFrame::WndProc(Message);
}
但是,这意味着没有重绘任何内容,包括框架的标题栏及其所有控件。
我知道这是一个非常普遍的问题,有解决方案吗?