c++ builder中StringGrid控件中的数据如何垂直居中

u011002186 2014-05-14 10:53:16
c++ builder中StringGrid控件中的数据如何垂直居中
...全文
445 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
缘中人 2014-05-15
  • 打赏
  • 举报
回复
void   __fastcall   TForm1::StringGrid1DrawCell(TObject   *Sender,   int   ACol,
            int   ARow,   TRect   &Rect,   TGridDrawState   State)
{
   
                DrawText(StringGrid1-> Canvas-> Handle,   StringGrid1-> Cells[ACol][ARow].c_str(),
                -1,   (RECT*)&Rect,   DT_SINGLELINE   |   DT_VCENTER   |   DT_CENTER);
    
} 
我不懂电脑 2014-05-14
  • 打赏
  • 举报
回复
在stringgrid控件中使文字内容在cell中做到上下居中 经多次实践,偶终于找到了解决使文字内容在每个cell单元中上下居中的办法: 就是利用画板的draw方法,通过“画”出文字解决了这个问题。哈,不算是旁门左道吧~ 实现非常简单: 设一全句变量: var Iscentre:boolean; 在需要上下居中显示文字内容时,用语句: cells[x,y]:=, 并置Iscentre为真; (注意:一定要赋空值!! 原因见下) ~~~~~x,y为局部变量 给Form1上的stringgrid控件添加OnDrawCell事件,过程代码: procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); begin if iscentre then stringgrid1.Canvas.TextOut(rect.left+14,rect.top+8,标题居中 ); end; ~~~~~~~~~~~~~~~~~~~~~~~~~ 请根据具体设置调节! 因为此事件被触发的条件,是发生cell被赋值时, 所以必须先将其置空值以触发Stringgrid 的onDrawCell事件!
Kanson 2014-05-14
  • 打赏
  • 举报
回复
在Draw方法中实现;

13,826

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧