вот код, который я имею в OnPaint
случае моей формы:BeginPath TextOut EndPath рисует перевернутый текст
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++, я тоже могу с этим работать.
Спасибо
Благодаря AKYÜZ. Хитрость заключалась в том, чтобы добавить 'Canvas-> Brush-> Style = bsClear;' прямо перед 'TextOut'. – Sam