Private Declare Function SetTextCharacterExtra Lib "gdi32" (ByVal hdc As Long, ByVal nCharExtra As Long) As LongPrivate Sub Form_Paint() SetTextCharacterExtra Me.hdc, 10 Me.Print "this is test" End SubSetTextCharacterExtra VB声明 Declare Function SetTextCharacterExtra Lib "gdi32" Alias "SetTextCharacterExtraA" (ByVal hdc As Long, ByVal nCharExtra As Long) As Long 说明 描绘文本的时候,指定要在字符间插入的额外间距 返回值 Long,这个设备场景的前一个额外间距设置 参数表 参数 类型及说明 hdc Long,设备场景的句柄 nCharExtra Long,要在字符间插入的额外空间,采用设备场景的逻辑坐标系统 在VB里使用 如改变了这个设置,注意恢复VB窗体或控件原来的字符间距设置
可以,这是我写的例子,但是有很多问题~~只能实现扩大字据Private Declare Function SetTextCharacterExtra Lib "gdi32" (ByVal hdc As Long, ByVal nCharExtra As Long) As Long Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long Private Declare Function TextOut Lib "gdi32" Alias "TextOutA" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal lpString As String, ByVal nCount As Long) As Long Private Declare Function GetCaretPos Lib "user32" (lpPoint As POINTAPI) As LongPrivate Type POINTAPI x As Long y As Long End Type Dim hdc As Long Dim caretPos As POINTAPI
Text1.Refresh hdc = GetDC(Text1.hwnd) 'GetCaretPos caretPos SetTextCharacterExtra hdc, 30& TextOut hdc, 0, 0, Text1.SelText, Len(Text1.SelText) End SubPrivate Sub Text1_Change() Dim hdc As Long Dim caretPos As POINTAPI
'Text1.Refresh hdc = GetDC(Text1.hwnd) 'GetCaretPos caretPos SetTextCharacterExtra hdc, 30& TextOut hdc, 0, 0, Text1.Text, Len(Text1.Text) End Sub
晕,少贴了一句话。 Private Sub Command2_Click() Dim hdc As Long Dim caretPos As POINTAPI
Text1.Refresh hdc = GetDC(Text1.hwnd) 'GetCaretPos caretPos SetTextCharacterExtra hdc, 30& TextOut hdc, 0, 0, Text1.SelText, Len(Text1.SelText) End Sub
SetTextCharacterExtra Me.hdc, 10
Me.Print "this is test"
End SubSetTextCharacterExtra VB声明
Declare Function SetTextCharacterExtra Lib "gdi32" Alias "SetTextCharacterExtraA" (ByVal hdc As Long, ByVal nCharExtra As Long) As Long
说明
描绘文本的时候,指定要在字符间插入的额外间距
返回值
Long,这个设备场景的前一个额外间距设置
参数表
参数 类型及说明
hdc Long,设备场景的句柄
nCharExtra Long,要在字符间插入的额外空间,采用设备场景的逻辑坐标系统
在VB里使用
如改变了这个设置,注意恢复VB窗体或控件原来的字符间距设置
我以前用过
能不能把你的例程,张贴上来
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function TextOut Lib "gdi32" Alias "TextOutA" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal lpString As String, ByVal nCount As Long) As Long
Private Declare Function GetCaretPos Lib "user32" (lpPoint As POINTAPI) As LongPrivate Type POINTAPI
x As Long
y As Long
End Type Dim hdc As Long
Dim caretPos As POINTAPI
Text1.Refresh
hdc = GetDC(Text1.hwnd)
'GetCaretPos caretPos
SetTextCharacterExtra hdc, 30&
TextOut hdc, 0, 0, Text1.SelText, Len(Text1.SelText)
End SubPrivate Sub Text1_Change()
Dim hdc As Long
Dim caretPos As POINTAPI
'Text1.Refresh
hdc = GetDC(Text1.hwnd)
'GetCaretPos caretPos
SetTextCharacterExtra hdc, 30&
TextOut hdc, 0, 0, Text1.Text, Len(Text1.Text)
End Sub
Private Sub Command2_Click()
Dim hdc As Long
Dim caretPos As POINTAPI
Text1.Refresh
hdc = GetDC(Text1.hwnd)
'GetCaretPos caretPos
SetTextCharacterExtra hdc, 30&
TextOut hdc, 0, 0, Text1.SelText, Len(Text1.SelText)
End Sub