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 控件。
按下按钮后,我想将面板的颜色更改为绿色:
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 控件。