就用这两个API:
Public Declare Function DestroyCaret Lib "user32" Alias "DestroyCaret" () As Long
Public Declare Function CreateCaret Lib "user32" Alias "CreateCaret" (ByVal hwnd As Long, ByVal hBitmap As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long是横是竖调整nWidth,nHeight 这两个参数到适当的值就会有或横或竖的效果了,
如果你还要把图片都翻过来,建议用图形处理软件……
解决方案 »
- 如何用VB做一個打字測試程序
- 狂送100分(8)
- 问高手: 在VB中如何对菜单的默认边框(3D效果)进行描边?
- 做一个EXE文件,安装在本机上,使得关机时提醒你还未签退!
- 如何将Windows DLL包装成ActiveX DLL以在ASP中发送短信?
- 如果找出Crystl Report里面与显示报表有关的文件,急!!!!!!!!!
- MSHFlexgrid表里的字段名转换问题啊(如何从英文转变为中文)
- VB报表的有关问题,总是提示报错
- 新手的一个问题
- 你要多少分都可以!:Microsoft Speech SDK 5.1开发的语音软件如何写注册表?
- vb 与access2000连接
- 怎么样用VB程序获得CPU的序列号或主板的序列号??在线等待,马上结分!
注意:使用这个函数的时候,一定要使焦点在你要更新光标的那个文本框里。CreateCaret 是创建光标,
它的参数说明:
hwnd :要创建光标的控件的句柄,比如你要在text1里面创建,就是text1.hwnd
hBitmap :光标图片的句柄
nWidth,nHeight :光标的宽和高
ShowInputCaret
End Sub
Public Function ShowInputCaret() As Long
Dim pt As POINTAPI
Dim lngWidth As Long '光标宽度
pt.X = 5
pt.Y = 12
lngWidth = 8
Call CreateCaret(Text1.hwnd, 0, lngWidth, 2)
SetCaretPos pt.X, pt.Y
ShowCaret Text1.hwnd
End Function
比如:
text1.setfocus
destroycaret
就可以把text1里面的光标删除.
Text1.SetFocus
DestroyCaret
CreateCaret Text1.hwnd, Picture1.Picture, 10, 1
ShowCaret Text1.hwnd
End Sub测试过了,没问题