Есть ли способ выровнять текст в msflexgrid по вертикали, как это делает Excel?
спасибо
Есть ли способ выровнять текст в msflexgrid по вертикали, как это делает Excel?
спасибо
Есть много способов поворота шрифтов на 90 градусов. VB6 использует часть объекта OLE StdFont из библиотеки типов stdole2.
Вам нужно будет преобразовать StdFont в шрифт GDI, чтобы иметь возможность манипулировать им.
Вот очень хороший пост (Text At Any Angle) с примером кода, чтобы продолжать делать именно это.
Образец рисует форму, но я думаю, что вы можете получить дескриптор MSFlexGrid и рисовать в нем.
Затем вы можете контролировать, когда и как будет отрисовываться текст. Если вы хотите редактировать вертикальный текст во время выполнения, вы можете вместо этого отображать горизонтальное текстовое поле над ячейкой при редактировании текста, а затем рисовать новый текст после завершения редактирования.
Нет, если вы говорите о вертикальном вращении текста.
Вы можете преобразовать текст в повернутое изображение, а затем загрузить изображение.
Подробнее…
Вы можете напечатать повернутый текст в элементе управления PictureBox, а затем назначить PictureBox ячейке.
Эта ссылка показывает аналогичное использование метода, но немного по другой причине.
http://vb.mvps.org/articles/ap199907.pdf
Ничего встроенного, но вот хак, который я использовал несколько лет назад. Вы передаете строку функции, и она возвращает строку с возвратом каретки и переводом строки после каждого символа.
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