网站公告
·Access快速平台QQ群号:189307860    ·Access快速开发平台下载地址及教程    ·欢迎添加微信交流账号:Accessoft7    ·如何快速搜索本站文章|示例|资料!    
您的位置: 首页 > 技术文章 > 源码示例

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

时 间: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交流群 (群号:232776913)       access源码网店

最新评论 查看更多评论(12)

2017/10/12 9:22:04阿卡
简单明了,网上部分人还在计算控件边界。

2016/10/13 9:42:25胡轶毓
好用,学习了

2012/4/3 14:22:02hhq
学习了!

2011/12/23 13:41:14麥田
顶一下

2010/11/9 12:40:36殷小宝
红尘如烟老师真是真正的高手啊。

发表评论您的评论将提升作者分享的动力!快来评论一下吧!

用户名:
密 码:
内 容:
 

常见问答

技术分类

相关资源

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