社区
C++ Builder
帖子详情
怎样让 stringGrid 中的文字居右显示
SENDFREE
2001-08-08 10:28:08
rt
...全文
207
3
打赏
收藏
怎样让 stringGrid 中的文字居右显示
rt
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Chxis
2001-08-08
打赏
举报
回复
另外
API:
DrawText
VB声明
Declare Function DrawText Lib "user32" Alias "DrawTextA" (ByVal hdc As Long, ByVal lpStr As String, ByVal nCount As Long, lpRect As RECT, ByVal wFormat As Long) As Long
说明
将文本描绘到指定的矩形中
返回值
Long,描绘文字的高度
参数表
参数 类型及说明
hdc Long,欲在其中显示文字的一个设备场景的句柄
lpStr String,欲描绘的文本字串
nCount Long,欲描绘的字符数量。如果要描绘整个字串(直到空中止符),则可将这个参数设为-1
lpRect RECT,指定用于绘图的一个格式化矩形(采用逻辑坐标)
wFormat Long,一个标志位数组,决定了以何种形式执行绘图。参考下面总结的常数类型列表
标志常数 说明
DT_BOTTOM 必须同时指定DT_SINGLE。指示文本对齐格式化矩形的底边
DT_CALCRECT 象下面这样计算格式化矩形:多行绘图时矩形的底边根据需要进行延展,以便容下所有文字;单行绘图时,延展矩形的右侧。不描绘文字。由lpRect参数指定的矩形会载入计算出来的值
DT_CENTER 文本垂直居中
DT_EXPANDTABS 描绘文字的时候,对制表站进行扩展。默认的制表站间距是8个字符。但是,可用DT_TABSTOP标志改变这项设定
DT_EXTERNALLEADING 计算文本行高度的时候,使用当前字体的外部间距属性(the external leading attribute)
DT_LEFT 文本左对齐
DT_NOCLIP 描绘文字时不剪切到指定的矩形
DT_NOPREFIX 通常,函数认为 & 字符表示应为下一个字符加上下划线。该标志禁止这种行
为
DT_RIGHT 文本右对齐 <----------
DT_SINGLELINE 只画单行
DT_TABSTOP 指定新的制表站间距,采用这个整数的高8位
DT_TOP 必须同时指定DT_SINGLE。指示文本对齐格式化矩形的顶部
DT_VCENTER 必须同时指定DT_SINGLE。指示文本对齐格式化矩形的中部
DT_WORDBREAK 进行自动换行。如用SetTextAlign函数设置了TA_UPDATECP标志,这里的设置则无效
Chxis
2001-08-08
打赏
举报
回复
Dephi的,参考参考
Chxis
2001-08-08
打赏
举报
回复
在stringgrid控件中使文字内容在cell中做到上下居中
Seaspide 2001.4.19
经多次实践,偶终于找到了解决使文字内容在每个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事件!
delphi 开发经验技巧宝典源码
0208 在Data
Grid
中
如何使标题
文字
居
中
138 0209 如何把ListBox
中
的内容拖曳到另一个ListBox
中
139 0210 把DB
Grid
中
的数据赋给数组 139 0211 如何获取Data
Grid
单元格
中
的内容 140 0212 如何锁定文本框
中
的...
delphi 开发经验技巧宝典源码06
0208 在Data
Grid
中
如何使标题
文字
居
中
138 0209 如何把ListBox
中
的内容拖曳到另一个ListBox
中
139 0210 把DB
Grid
中
的数据赋给数组 139 0211 如何获取Data
Grid
单元格
中
的内容 140 0212 如何锁定文本框
中
的...
String
Grid
文字
居
中
对齐
String
Grid
文字
居
中
对齐 ...这个控件默认
显示
格式都是左对齐,可是这样很不美观,至少我的项目
中
需要它居
中
显示
文本~~~所以将居
中
显示
的方法记录在此,以便日后自己和他人复用 该控件没...
Delphi
String
grid
单元格居
中
方法
设置为false,然后在窗口的formResize
中
写入如下代码,就可以让所有单元格居
中
了,如果需要靠左或靠右,只要把。网上有很多教
string
grid
单元格居
中
的方法,基本都是通过drawcell的方式,太麻烦了!
string
grid
的...
C++ Builder
13,825
社区成员
102,679
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章