C++ Builder RAD Studio XE7改变面板颜色

C++ Builder RAD Studio XE7 change color of a Panel

按下按钮后,我想将面板的颜色更改为绿色:

ErrorDetectorPanel->Brush->Color = clLime;

不起作用。

ErrorDetectorPanel->Color = clLime;
ErrorDetectorPanel->Refresh();

不起作用。

沉迷于此:

ErrorDetectorPanel->ParentColor = false;
ErrorDetectorPanel->Refresh();

它仍然不起作用。

这样试过:

HBRUSH brush = CreateSolidBrush(RGB(0, 255, 0));
SetWindowLong(ErrorDetectorPanel->Handle,WM_ERASEBKGND, 0);
SetWindowLong(ErrorDetectorPanel->Handle,GCLP_HBRBACKGROUND, (LONG)brush);

TForm 透明度为 false 按下按钮后结果相同。

我怎样才能做对?

设置 TPanel.Color 属性 是正确的解决方案(它会自动将 ParentColor 设置为 false),但是您必须在 [=12] 上禁用 theming/styling =](或整个程序作为一个整体)以使用自定义着色。 Themed/Styled 控件从活动 theme/style.

获取颜色

我用

TPanel *tp[]={Panel454,Panel455,Panel456};

    for(int i=sizeof(tp)/sizeof(tp[0]);--i>=0;){
        tp[i]->ParentBackground=false;
        tp[i]->StyleElements = TStyleElements(); // disable all
//      tp[i]->CleanupInstance();
        tp[i]->Color=clSkyBlue;
        }

如果使用 Themed/Styled 控件。