游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2086|回复: 1

让VB6.0支持动画光标(转载)

[复制链接]

66

主题

345

帖子

356

积分

中级会员

Rank: 3Rank: 3

积分
356
发表于 2003-11-8 15:46:00 | 显示全部楼层 |阅读模式
在VB6.0中,鼠标指针通常是由窗体或其它控件的MouseIcon属性来设置,但遗憾的是,
MouseIcon属性不支持彩色光标(*.cur)和动画光标(*.ani)。因此,要想在程序中使用上述光
标,就不得不借助Windows API函数SetClassLong,该函数的功能是设置和修改窗体类中某些属性
的值,并返回该属性原来的值。
  关键函数的介绍:

  SetClassLong hwnd,nIndex,dwNewLong

  其中,hwnd代表要设置光标的窗体或控件的句柄;nIndex表示设置光标,在这里设为-12;dwNewLong代表新的光标文件,可由另一API函数LoadCur-sorFromFile获得。

  设置光标后,在程序结束时,我们要将光标复原,因此要先将SetClassLong返回的原始光标存到变量中,再在窗体的Unload事件中将其还原。

  程序清单如下:Option ExplicitPrivate Declare Function LoadCursorFromFile Lib "user32" Alias "LoadCursorFromFileA" (ByVal lpFileName As String) As LongPrivate Declare Function SetClassLong Lib "user32" Alias "SetClassLongA" (ByVal hwnd As Long,ByVal nIndex As Long,ByVal dwNewLong As Long) As Long'以上API函数声明,必须在同一行中结束Dim NewCur As LongDim OldCur As LongPrivate Sub Form_Load()NewCur=LoadCursorFromFile("C:\WINDOWS\CURSORS\GLOBE.ANI")'上面*.ANI动画光标的路径可自己设定OldCur=SetClassLong(hwnd,-12,NewCur)End SubPrivate Sub Form_Unload(Cancel As Integer)SetClassLong hwnd,-12,OldCurEnd Sub

  以上程序在简体中文Windows98、VB6.0中调试通过。

0

主题

62

帖子

62

积分

注册会员

Rank: 2

积分
62
发表于 2007-4-4 19:47:00 | 显示全部楼层

Re:让VB6.0支持动画光标(转载)

很有用的东西,支持
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-4-12 15:56

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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