【发布时间】:2016-07-20 13:32:21
【问题描述】:
这是我在表单的OnPaint 事件中的代码:
int elementCount;
String tStr = L"15:00";
::BeginPath(Canvas->Handle);
::TextOut(Canvas->Handle, 5, 5, tStr.c_str(), tStr.Length());
::EndPath(Canvas->Handle);
elementCount = ::GetPath(Canvas->Handle, NULL, NULL, 0);
Canvas->Brush->Color = clBlue;
Canvas->Pen->Color = clYellow;
Canvas->Pen->Width = 4;
if(0 < elementCount)
{
boost::scoped_array<TPoint> mPoints(new TPoint[elementCount]);
boost::scoped_array<BYTE> mTypes(new BYTE[elementCount]);
::GetPath(Canvas->Handle, mPoints.get(), mTypes.get(), elementCount);
::FillPath(Canvas->Handle);
::PolyDraw(Canvas->Handle, mPoints.get(), mTypes.get(), elementCount);
}
else
::StrokeAndFillPath(Canvas->Handle);
但这是我在表格上得到的:
正如你所看到的那样,文本是倒置的(文本必须是蓝色的,背景是灰色的,但它是相反的,黄线在背景周围而不是文本周围)。有谁知道我该如何解决这个问题?
我正在使用 C++ Builder 10 Seattle,但如果有人知道 Delphi 或纯 C++ 技巧,我也可以使用它。
谢谢
【问题讨论】:
标签: c++ delphi graphics gdi c++builder-10-seattle