0

有没有像excel一样在垂直方向对齐msflexgrid中的文本?

谢谢

替代文字

4

3 回答 3

1

将字体旋转 90 度有很多功能。VB6 使用 stdole2 类型库的 OLE StdFont 对象部分。

您必须将 StdFont 转换为 GDI 字体才能对其进行操作。

这是一篇非常好的文章(任意角度的文本),其中包含继续执行此操作的示例代码。

该示例正在表单上绘制,但我认为您可以获取 MSFlexGrid 的句柄并绘制到其中。

然后,您可以控制绘制文本的时间和方式。如果要在运行时编辑垂直文本,可以在编辑文本时在单元格上显示一个水平文本框,然后在完成编辑时绘制新文本。

于 2010-09-24T14:08:51.290 回答
0

如果您在谈论文本的垂直旋转,则不是。

您可以将文本转换为旋转图像,然后加载图像。

进一步在这...

您可以将旋转的文本打印到图片框控件,然后将图片框分配给单元格。

此链接显示了该方法的类似用法,但原因略有不同。

http://vb.mvps.org/articles/ap199907.pdf

于 2010-09-20T15:47:31.480 回答
0

没有内置任何东西,但这是我几年前使用的一个 hack。您将一个字符串传递给函数,它会在每个字符后传回一个带有回车和换行符的字符串。

Private Function VerticalString(ByVal strInput As String) As String
   Dim strReturn As String
   Dim i As Integer

   For i = 1 To Len(strInput)
      strReturn = strReturn & Mid$(strInput, i, 1) & vbCrLf
   Next i

   If Len(strReturn) > 1 Then
      strReturn = Mid$(strReturn, 1, Len(strReturn) - 1)
   End If

   VerticalString = strReturn

End Function

Private Sub FillGrid()
    flexgrid1.TextMatrix(1, 0) = VerticalString("Kc Chiefs")
End Sub

垂直文本

于 2010-09-20T15:47:31.840 回答