TDBGrid如何使某一列的显示结果是自定义显示的?(100分)

  • 主题发起人 主题发起人 LitterTiger
  • 开始时间 开始时间
L

LitterTiger

Unregistered / Unconfirmed
GUEST, unregistred user!
TDBGrid如何使某一列的显示结果是自定义显示的?
在TDBGrid里On...Draw 事件中如果自己画,当一行被选中时,一个cell只有有字的地方的底色是深色,没有字的地方还是白色,真是不好看.
请问如何处理呢? TField好像也有个OnGetText事件不知道是否有帮助?
void __fastcall TForm1::DBGrid1DrawDataCell(TObject *Sender,
const TRect &Rect, TField *Field, TGridDrawState State)
{
DBGrid1->Canvas->TextOutA(Rect.Left,Rect.top," test");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::DBGrid1DrawColumnCell(TObject *Sender,
const TRect &Rect, int DataCol, TColumn *Column,
TGridDrawState State)
{
if(State.Contains(gdFocused))
DBGrid1->Canvas->TextOutA(Rect.Left,Rect.top," test");
}
 
应该先画上底色!
 
你还要用fillrect才行
 
利用其画布函数功能可解决此问题,参考相关类函数参考说明.
 
后退
顶部