2

我使用 TStatusBar 并将样式设置为“psOwnerDraw”以在其上填充自定义颜色。

在正常情况下显示文本没有问题,但是在我更改 Windows 上的分辨率或将应用程序移出屏幕并返回后,文本被其他一些文本损坏。

这是我的代码:

void __fastcall TMainForm::TotalStatusBarDrawPanel(TStatusBar * StatusBar,
    TStatusPanel * Panel, const TRect & Rect)
{
    TRect StatusFillRect = Rect;
    TCanvas& pCan = *StatusBar->Canvas;
    if (Panel->Index == 0)
    {
        pCan.Font->Color = clRed;
        pCan.Brush->Color = clBtnFace;
    }
    pCan.FillRect(StatusFillRect);

    DrawTextW(pCan.Handle, Panel->Text.c_str(), -1,
            &StatusFillRect, DT_SINGLELINE | DT_VCENTER);
}

状态栏图片损坏

4

0 回答 0