UP

解决方案 »

  1.   

    Const DT_CENTER = &H1
    Private Type RECT
        Left As Long
        Top As Long
        Right As Long
        Bottom As Long
    End Type
    Private 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
    Private Declare Function SetRect Lib "user32" (lpRect As RECT, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As LongPrivate Sub Form_Load()
       Picture1.AutoRedraw = True
       Picture1.ScaleMode = 3
       Dim R As RECT
       SetRect R, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight
       DrawText Picture1.hdc, "Hello World !", Len("Hello World !"), R, DT_CENTER
    End Sub
      

  2.   

    Private 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
    Private Const DT_CENTER = &H1Private Type rect
    mleft As Long
    mtop As Long
    mright As Long
    mbottom As Long
    End TypePrivate Sub Command1_Click()
    Dim rt As rect
    rt.mleft = 85: rt.mtop = 0
    rt.mright = 97: rt.mbottom = 12DrawText Picture1.hdc, "a", 1, rt, DT_CENTER
    End Sub
      

  3.   

    Picture1.AutoRedraw = True
       Picture1.ScaleMode = 3
       Dim R As RECT
       SetRect R, 0, 0, 97, Picture1.ScaleHeight
       lngResult = DrawText(Picture1.hdc, "BS牵引车用蓄电池", -1, R, _
                                        DT_WORDBREAK Or DT_NOPREFIX Or DT_MODIFYSTRING Or _
                                        DT_EDITCONTROL Or DT_CALCRECT)这样为什么,看不到?
      

  4.   

    你那有几个常数是函数DrawTextEx中的,参考:
    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标志,这里的设置则无效  
    DrawTextEx  VB声明  
    Declare Function DrawTextEx Lib "user32" Alias "DrawTextExA" (ByVal hDC As Long, ByVal lpsz As String, ByVal n As Long, lpRect As RECT, ByVal un As Long, lpDrawTextParams As DRAWTEXTPARAMS) As Long  
    说明  
    与DrawText相似,只是加入了更多的功能  
    返回值  
    Long,描绘文字的高度  
    参数表  
    参数 类型及说明  
    hDC Long,要在其中绘图的一个设备场景的句柄  
    lpsz String,欲描绘的文本字串  
    n Long,欲描绘的字符数量。如果要描绘整个字串(直到空中止符),则可将这个参数设为-1  
    lpRect RECT,指定用于绘图的一个格式化矩形(采用逻辑坐标)  
    un Long,一个标志位。决定了以何种形式执行绘图。参考DrawText的wFormat参数和下表。其中下表列出的是新增的常数  
    标志常数 说明  
    DT_EDITCONTROL 对一个多行编辑控件进行模拟。不显示部分可见的行  
    DT_ENDELLIPSES 倘若字串不能在矩形里全部容下,就在末尾显示省略号  
    DT_PATHELLIPSES 如字串包含了 \ 字符,就用省略号替换字串内容,使其能在矩形中全部容下。例如,一个很长的路径名可能换成这样显示——c:\windows\...\doc\readme.txt  
    DT_MODIFYSTRING 如指定了DT_ENDELLIPSES 或 DT_PATHELLIPSES,就会对字串进行修改,使其与实际显示的字串相符  
    DT_RTLREADING 如选入设备场景的字体属于希伯来或阿拉伯语系,就从右到左描绘文字  
    lpDrawTextParams DRAWTEXTPARAMS,这个结构包含了附加的绘图参数