社区
C++ Builder
帖子详情
怎样更改StringGrid中某一个单元格的字体属性?
crysword
2003-10-20 10:40:47
RT
...全文
140
7
打赏
收藏
怎样更改StringGrid中某一个单元格的字体属性?
RT
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
crysword
2003-11-13
打赏
举报
回复
UP@@@####
niuzhenjun
2003-10-21
打赏
举报
回复
那恐怕不行,你用vb的ocx控件吧。
crysword
2003-10-21
打赏
举报
回复
这种方法我也试过,不过我的结果是变过去的字体就不能再恢复了。
而我的目的是通过鼠标的点击改变字体的属性,而点击别的单元格,现在的单元格字体恢复。
niuzhenjun
2003-10-20
打赏
举报
回复
当然可以了,以前的收藏,改一改就可以
C++Builder中你可以重载TStringGrid的OnDraw事件的方法,关键步骤如下:
1。覆盖Cell:sgrid->Canvas->FillRect(Rect);(sgrid是控件的名称)
2。写字符串:DrawText(sgrid->Canvas->Handle,sgrid->Cells[ACol][ARow].c_str(),-1,(RECT*)&Rect, DT_SINGLELINE | DT_VCENTER |DT_CENTER); 只需要修改最后一个参数就可以实现各种文字的效果!
---------------------------------------------------------------
Example:
隔行换背景色,并把文字居中显示
void __fastcall TfmIn::sgridDrawCell(TObject *Sender, int ACol, int ARow,
TRect &Rect, TGridDrawState State)
{
if( ARow>0)
{
if(ARow%2 == 0 )
{
sgrid->Canvas->Brush->Color=(TColor)0xEFE3F7;
sgrid->Canvas->FillRect(Rect);
//sgrid->Canvas->Font->Color = clBlue;
}
else
{
sgrid->Canvas->Brush->Color=(TColor)0xF7F3FF;
sgrid->Canvas->FillRect(Rect);
}
DrawText(sgrid->Canvas->Handle,sgrid->Cells[ACol][ARow].c_str(),-1,(RECT*)&Rect,
DT_SINGLELINE | DT_VCENTER |DT_CENTER);
}
}
你查一下canvas的font属性就可以了
albeta
2003-10-20
打赏
举报
回复
这个控件没办法,网络上有很多从这个控件继承下来的控件,可以实现这个。
Cocoky
2003-10-20
打赏
举报
回复
同意
yufei_yf
2003-10-20
打赏
举报
回复
同意 niuzhenjun(还得学呀)
C++ Builder
13,825
社区成员
102,679
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章