我用 DrawText 函数 在一距形内可以水平,垂直居中显示文字,但是文字自动换行后,垂直居中就不能用了.请问如何让水平,垂直居中,并且可以自动换行.因为要多次显示文字,自己判断并处理就太慢了,有没有什么其他函数可以实现这样的功能?
解决方案 »
- 求助,用spy++查看postmessage,keybd_event,sendinput实现结果的不同
- 问:copymemory(api)函数的主要作用是什么(我在vbapi)中找不到这个函数的介绍?(要中文说明)
- 怎么使datagrid中的某一条记录高亮显示???????
- 问一个菜菜菜的问题,关于label控件
- DataGrid or MSFlexGrid...
- 请问在VB中如何比较好的处理路径???
- 救命!!用vb读excel中的数据怎么读?看我下面的程序对不对?(急!!!在线等待)
- 请教高手用VB向SQL数库中添加数据的问题,急急急!!!!!!!!
- 如何判断一个text中的内容是数字
- 如何用VB制作向导窗体
- 有谁会用DataList控件?请指教
- 如何截取字符串
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标志,这里的设置则无效