7,762
社区成员
发帖
与我相关
我的任务
分享
Public 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
Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
'wFormat Long,一个标志位数组,决定了以何种形式执行绘图。参考下面总结的常数类型列表
Public Const DT_BOTTOM = &H8 'DT_BOTTOM 必须同时指定DT_SINGLE?指示文本对齐格式化矩形的底边
Public Const DT_CALCRECT = &H400 'DT_CALCRECT 象下面这样计算格式化矩形:多行绘图时矩形的底边根据需要进行延展,以便 容下所有文字;单行绘图时,延展矩形的右侧。不描绘文字。由lpRect参数指定的矩形会载入计算出来的值
Public Const DT_CENTER = &H1 'DT_CENTER 文本垂直居中
Public Const DT_EXPANDTABS = &H40 'DT_EXPANDTABS 描绘文字的时候,对制表站进行扩展。默认的制表站间距是8个字符。但是,可用DT_TABSTOP标志改变这项设定
Public Const DT_EXTERNALLEADING = &H200 'DT_EXTERNALLEADING 计算文本行高度的时候,使用当前字体的外部间距属性(the external leading attribute)
Public Const DT_LEFT = &H0 'DT_LEFT 文本左对齐
Public Const DT_MODIFYSTRING = 65536
Public Const DT_NOCLIP = &H100 'DT_NOCLIP 描绘文字时不剪切到指定的矩形
Public Const DT_NOPREFIX = &H800 'DT_NOPREFIX 通常,函数认为 & 字符表示应为下一个字符加上下划线。该标志禁止这种行为
Public Const DT_RIGHT = &H2 'DT_RIGHT 文本右对齐
Public Const DT_SINGLELINE = &H20 'DT_SINGLELINE 只画单行
Public Const DT_TOP = &H0 'DT_TOP 必须同时指定DT_SINGLE?指示文本对齐格式化矩形的顶部
Public Const DT_TABSTOP = &H80 'DT_TABSTOP 指定新的制表站间距,采用这个整数的高8位
Public Const DT_WORDBREAK = &H10 'DT_WORDBREAK 进行自动换行。如用SetTextAlign函数设置了TA_UPDATECP标志,这里的设置则无效
Public Const DT_VCENTER = &H4 'DT_VCENTER 必须同时指定DT_SINGLE?指示文本对齐格式化矩形的中部
picture1.CurrentX =200
picture1.CurrentY = 300
picture1.Print "指示文本对齐格式化矩形的中部"
Dim rectBox As RECT
With rectBox
.Left = 200/ 15: .Top = 300/ 15
.Right = (200+ 500) / 15: .Bottom = (300+ 300) / 15
End With
DrawText picture1.hDC, "指示文本对齐格式化矩形的中部", -1, rectBox, DT_LEFT Or DT_TOP
x = Picture1.ScaleX(240, vbTwips, vbPixels)
y = Picture1.ScaleY(120, vbTwips, vbPixels)
Picture1.ScaleMode = vbPixels
x = Picture1.ScaleX(240, vbTwips, vbpicels)
y = Picture1.ScaleY(120, vbTwips, vbpicels)
Private Sub Command1_Click()
'A4纸张
Picture1.ScaleMode = vbTwips
Picture1.Height = 16836
Picture1.Width = 11904
Picture1.CurrentX = 100
Picture1.CurrentY = 100
Picture1.Print "大多数和绘图有关的API函数,用的度量单位都是像素。"
End Sub
Private Sub Command2_Click()
Dim rectBox As RECT
'A4纸张
Picture1.ScaleMode = vbTwips
Picture1.Height = 16836
Picture1.Width = 11904
With rectBox
.Left = Picture1.ScaleX(100, vbTwips, vbPixels)
.Top = Picture1.ScaleY(100, vbTwips, vbPixels)
.Right = Picture1.ScaleX(6000, vbTwips, vbPixels)
.Bottom = Picture1.ScaleY(700, vbTwips, vbPixels)
End With ' rectBox
DrawText Picture1.hDC, "大多数和绘图有关的API函数,用的度量单位都是像素。", -1, rectBox, DT_LEFT
End Sub