设置DoubleBuffered真实面板后,变为黑色并显示旧屏幕内容

时间:2016-09-15 16:58:45

标签: windows delphi c++builder

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; (从来不知道存在财产)解决了一些但不是全部的覆盖/黑色填充问题。其余的仍然是一个谜。

0 个答案:

没有答案