设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 24750|回复: 76
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
1#
发表于 2010-8-15 17:50:34 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 红尘如烟 于 2010-9-19 21:23 编辑

当光标移到某个控件时将光标设置为手形是一个比较常用的功能,简单点的办法就是将控件的“超链接地址”属性设为一个空格,但这样做不好的地方在于光标移到控件上去的时候会显示一个空的控件提示,并且会造成新打开的弹出窗体不能获得焦点。所以只能用API来实现(注:2007版开始的按钮已经可以通过“悬停指针”属性设置了),以下是网上流传的方法:
  1. '在模块中声明API函数
  2. Public Declare Function SetCursor Lib "user32" (ByVal hCursor As Long) As Long  

  3. '光标移到按钮上时变成手形
  4. Private Sub Command0_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  5.     SetCursor 65567
  6. End Sub
复制代码

但实际上这样并不好用,因为这里的hCursor并不是定值,而是会根据系统变化的,甚至更换了Windows主题后就可能变化,以下的代码才是固定的将光标设为手形,在任何Windows系统通用。

  1. '在模块中声明API函数
  2. Public Declare Function SetCursor Lib "user32" (ByVal hCursor As Long) As Long   
  3. Public Declare Function LoadCursorByNum Lib "user32" Alias "LoadCursorA" (ByVal hInstance As Long, ByVal lpCursorName As Long) As Long

  4. '光标移到按钮上时变成手形
  5. Private Sub Command0_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  6.     SetCursor LoadCursorByNum(0, 32649)
  7. End Sub
复制代码

另外为了减少代码,当不需要在鼠标移动事件中进行其它处理时,我们可以直接将按钮的“鼠标移动”属性设为:=SetCursor(LoadCursorByNum(0, 32649))

该方法还可以设置其它指针形状,把示例改了一下,一并发上来


游客,如果您要查看本帖隐藏内容请回复



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

评分

参与人数 1经验 +4 收起 理由
todaynew + 4 我很赞同

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享分享 分享淘帖 订阅订阅
77#
发表于 2025-3-12 21:07:00 | 只看该作者
123456
回复

使用道具 举报

76#
发表于 2024-1-26 11:04:52 | 只看该作者
好东西
回复

使用道具 举报

点击这里给我发消息

75#
发表于 2014-11-27 10:12:25 | 只看该作者
全部收藏
回复

使用道具 举报

74#
发表于 2014-10-31 01:33:58 | 只看该作者
看样子是好东西
73#
发表于 2014-3-9 21:32:55 | 只看该作者
收下了,谢谢
72#
发表于 2013-12-23 19:51:19 | 只看该作者
我的win8 64位下使用此办法不行
71#
发表于 2013-12-17 10:40:11 | 只看该作者
不错,学习了
70#
发表于 2013-11-29 10:46:48 | 只看该作者
学习
回复

使用道具 举报

69#
发表于 2013-11-13 09:46:28 | 只看该作者
看看了....
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2025-5-20 05:28 , Processed in 0.105261 second(s), 37 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表