Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > 源码示例

真正有效并且通用设置鼠标指针为手形及其它特定形状的方法

时 间:2010-08-16 00:00:00
作 者:红尘如烟   ID:10768  城市:成都
摘 要:真正有效并且通用设置鼠标指针为手形及其它特定形状的方法
正 文:

当光标移到某个控件时将光标设置为手形是一个比较常用的功能,简单点的办法就是将控件的“超链接地址”属性设为一个空格,但这样做不好的地方在于光标移到控件上去的时候会显示一个空的控件提示,并且会造成新打开的弹出窗体不能获得焦点。所以只能用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))
该方法还可以设置其它指针形状,把示例改了一下,一并发上来。

附   件:

点击下载此附件


图   示:



Access软件网QQ交流群 (群号:483923997)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助