|
本帖最后由 红尘如烟 于 2010-9-19 21:23 编辑
当光标移到某个控件时将光标设置为手形是一个比较常用的功能,简单点的办法就是将控件的“超链接地址”属性设为一个空格,但这样做不好的地方在于光标移到控件上去的时候会显示一个空的控件提示,并且会造成新打开的弹出窗体不能获得焦点。所以只能用API来实现(注:2007版开始的按钮已经可以通过“悬停指针”属性设置了),以下是网上流传的方法:
- '在模块中声明API函数
- Public Declare Function SetCursor Lib "user32" (ByVal hCursor As Long) As Long
- '光标移到按钮上时变成手形
- Private Sub Command0_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
- SetCursor 65567
- End Sub
复制代码
但实际上这样并不好用,因为这里的hCursor并不是定值,而是会根据系统变化的,甚至更换了Windows主题后就可能变化,以下的代码才是固定的将光标设为手形,在任何Windows系统通用。
- '在模块中声明API函数
- Public Declare Function SetCursor Lib "user32" (ByVal hCursor As Long) As Long
- Public Declare Function LoadCursorByNum Lib "user32" Alias "LoadCursorA" (ByVal hInstance As Long, ByVal lpCursorName As Long) As Long
- '光标移到按钮上时变成手形
- Private Sub Command0_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
- SetCursor LoadCursorByNum(0, 32649)
- End Sub
复制代码
另外为了减少代码,当不需要在鼠标移动事件中进行其它处理时,我们可以直接将按钮的“鼠标移动”属性设为:=SetCursor(LoadCursorByNum(0, 32649))
该方法还可以设置其它指针形状,把示例改了一下,一并发上来
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
评分
-
查看全部评分
|