我在使用drawtext时,想在个RECT中输出,居中文本,但不能竖行,因为使用了dt_singleline
常数.请大虾指点这样才能输出竖向,居中文本。

解决方案 »

  1.   

    没有使用控件,我使用的是,API,
    DrawText,在指定的区域RECT中,绘制竖向居中文本(水平和垂直都居中)
    我使用的是DT_VCENTER OR DT_SINGLELINE,但使用了DT_SINGLELINE,就只能单行输出了,不能竖向,我想让他竖向。
      

  2.   

    把DT_SINGLELINE换成
    DT_MULTILINE 看看呢?
      

  3.   

    DT_MULTILINE
    API中找不到他的常数值。
    在使用DT_VCENTER,我看MSDN参考上说的要与DT_SINGLELINE搭配使用。
      

  4.   

    使用DT_WORDBREAK,其值为 &H10
      

  5.   

    我试了下  DT_WORDBREAK  不行呀。
      

  6.   

    用DT_WORDBREAK 用,当区域宽度不够时,回在最近一个单词(对于汉字,则一个字相当于一个单词)处分行。
    如果要一行一个字符,须在每个字符后加一分行符。
      

  7.   

    比如要显示成如下样子——
       口
       若
       悬
       河
    可这样——
        Dim R As RECT
        Dim s As String
        Me.ScaleMode = vbPixels
        s = "口" & vbNewLine & "若" & vbNewLine & "悬" & vbNewLine & "河"
        SetRect R, 0, 0, 120, 120
        DrawText Me.hdc, s, LenB(StrConv(s, vbFromUnicode)), R, DT_MULTILINE Or DT_CENTER