0

とにかく、Excelのようにmsflexgridのテキストを垂直方向に揃える方法はありますか?

ありがとう

代替テキスト

4

3 に答える 3

1

フォントを90度回転させることには多くのことがあります。VB6は、stdole2タイプライブラリのOLEStdFontオブジェクト部分を使用します。

StdFontを操作できるようにするには、StdFontをGDIフォントに変換する必要があります。

これは、まさにそれを実行するためのサンプルコードを含む非常に優れた投稿(Text At Any Angle )です。

サンプルはフォームに描画していますが、MSFlexGridへのハンドルを取得して描画できると思います。

次に、テキストをいつどのように描画するかを制御できます。実行時に垂直方向のテキストを編集する場合は、テキストの編集中にセルの上に水平方向のテキストボックスを表示し、編集が終了したら新しいテキストを描画できます。

于 2010-09-24T14:08:51.290 に答える
0

テキストの垂直回転について話している場合は違います。

テキストを回転した画像に変換してから、画像を読み込むことができます。

さらにこれについて...

回転したテキストを画像ボックスコントロールに印刷してから、画像ボックスをセルに割り当てることができます。

このリンクは、メソッドの同様の使用法を示していますが、理由が少し異なります。

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

于 2010-09-20T15:47:31.480 に答える
0

何も組み込まれていませんが、ここに私が数年前に使用したハックがあります。関数に文字列を渡すと、文字ごとにキャリッジリターンとラインフィードを使用して文字列が返されます。

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 に答える