C++Builder 程序员博客
6 Sep
StringGrid1显示单元格如何控制显示的内容在中央?(包括上下中央,左右中央)
不过这样标题栏颜色也没了,可以改回DefaultDrawing = true;
再在上面代码前加一句: StringGrid1->Canvas->FillRect(Rect); //填充单元格画布
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
StringGrid1->Cells[1][1]="中华人民";
}
//—————————————————————————
void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol,
int ARow, TRect &Rect, TGridDrawState State)
{
if (ARow==1 && ACol==1)
{
StringGrid1->Canvas->Brush->Color=clRed;
StringGrid1->Canvas->FillRect(Rect);
StringGrid1->Canvas->Font->Color=clWhite;
String s=StringGrid1->Cells[ARow][ACol];
int txtwidth =StringGrid1->Canvas->TextWidth(s); //文本宽度
int txtheight=StringGrid1->Canvas->TextHeight(s);
StringGrid1->Canvas->TextOut(
Rect.Left+(Rect.Width()-txtwidth)/2,
Rect.Top+(Rect.Height()-txtheight)/2,
StringGrid1->Cells[1][1]);
}
}
多谢!