设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[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 分享分享 分享淘帖 订阅订阅
2#
发表于 2010-8-15 18:10:14 | 只看该作者

好东西就要支持才是!!!
3#
发表于 2010-8-15 18:11:36 | 只看该作者
是不是移到控件上就是手形光标吗?????
4#
发表于 2010-8-15 18:50:49 | 只看该作者
收藏了
5#
发表于 2010-8-15 19:44:06 | 只看该作者
谢谢分享,好经验
6#
发表于 2010-8-15 21:49:49 | 只看该作者
将光标设置为手形是一个比较常用的功能,以下是网上流传的方法: 但实际上这样并不好用,因为这里的hCursor ...
红尘如烟 发表于 2010-8-15 17:50

对于版主;论坛元老等资深的人,你的这段代码或模块他们一看就知道该如何使用,但对于我们这种菜鸟级爱好者来讲实在不好下手,是否能大致说说功能实现的过程或步骤?


点击这里给我发消息

7#
发表于 2010-8-15 22:32:36 | 只看该作者
很好,收藏了
8#
 楼主| 发表于 2010-8-15 23:29:24 | 只看该作者
我以为这个已经是很简单的了,没想到还是有人看不懂,只好把帖子重新改过。
9#
发表于 2010-8-16 06:04:52 | 只看该作者
支持
10#
发表于 2010-8-16 09:37:00 | 只看该作者
下了,谢了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-6 03:08 , Processed in 0.132803 second(s), 36 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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