我们使用StringGrid时,经常需要将标题行居中对齐,其它行根据需要,文本左对齐或居中对齐,数字右对齐等。
一、实现方法:使用 DrawCell 事件,
//本函数实现各单元格的对齐,其中标题行居中; grdFileList为TStringGrid控件名。
void __fastcall TForm1::grdFileListDrawCell(TObject *Sender, int ACol, int ARow,
TRect &Rect, TGridDrawState State)
{
AnsiString strCell = "";
int intDtFlag = 0; //对齐方式
strCell = grdFileList->Cells[ACol][ARow];
grdFileList->Canvas->FillRect(Rect);
if (ARow == 0)
{
//标题行居中,假定标题行为第0行,只有一行。
intDtFlag = DT_CENTER;
}
else
{
//其它行,根据需要设置
switch (ACol) {
case 1:
case 2:
case 8: //比如,第1,2,8列居左
intDtFlag = DT_LEFT;
break;
case 4: //第4列数字列,居右
intDtFlag = DT_RIGHT;
br