【发布时间】:2016-05-06 12:43:10
【问题描述】:
我知道如何在文本框和richtextbox 中证明右居中和左对齐,但我搜索并没有找到答案是你能像在word 或所有其他程序中一样调整文本吗?我尝试使用写字板然后复制它,效果很好,只是当我无法单击命令按钮并对齐文本时,所有行都排成一行,我就停止了, 我正在使用的代码就在这里
Option Explicit
Private Const WM_USER As Long = &H400&
Private Const EM_GETOLEINTERFACE As Long = WM_USER + 60
Private Const EM_SETTYPOGRAPHYOPTIONS As Long = WM_USER + 202
Private Const TO_ADVANCEDTYPOGRAPHY As Long = 1
Private Declare Function SendMessage Lib "user32" Alias "SendMessageW" ( _
ByVal hWnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
ByVal lParam As Long) As Long
Private Document As tom.ITextDocument
Private Sub cmdJustify_Click()
'Justify the text of the first paragraph:
'Select first paragraph in the document.
With Document.Range(0, 0)
.MoveEnd tomParagraph, 1
.Para.Alignment = tomAlignJustify 'Apply justification.
.Collapse tomStart 'Collapse the selection.
End With
End Sub
Private Sub Form_Load()
Dim Unknown As Object
SendMessage rtb.hWnd, EM_GETOLEINTERFACE, 0, VarPtr(Unknown)
Set Document = Unknown
SendMessage rtb.hWnd, _
EM_SETTYPOGRAPHYOPTIONS, _
TO_ADVANCEDTYPOGRAPHY, _
TO_ADVANCEDTYPOGRAPHY
rtb.LoadFile "Resources\Sample1.rtf"
End Sub
【问题讨论】:
-
您的
rtb是RichTextBox 吗?你有一个名为Resources\Sample1.rtf的文件吗?因为您所做的只是从下面复制并粘贴示例代码,并且该代码在这里完全没有问题。 -
没有。只有 RichEdit 控件支持
EM_SETTYPOGRAPHYOPTIONS和具有不同对齐方式的段落的标记。编辑控件全有或全无,仅限于左、右或居中。
标签: textbox vb6 richtextbox justify