当DoubleBuffered
为false时,面板在运行时会着色clBtnFace
。当我将DoubleBuffered
设置为true时,面板上的空白区域显示为黑色,或显示上一屏幕中的内容。就像背景没有被删除一样。
如果我将DoubleBuffered
设置为false并使用此功能:
void __fastcall TMain::CreateParams(TCreateParams &Params)
{
Params.ExStyle |= 0x02000000; // Turn on WS_EX_COMPOSITED
TForm::CreateParams(Params);
}
然后面板表现正常。
当所有子控件的WS_EX_COMPOSITED
设置为true时,打开基本表单上的DoubleBuffered
与基本表单上将ParentDoubleBuffered
设置为true不一样吗?
更新:设置违规面板'ParentBackground = false; (从来不知道存在财产)解决了一些但不是全部的覆盖/黑色填充问题。其余的仍然是一个谜。