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

用SetSystemCursor制作一个等待事件的窗体

时 间:2008-02-26 07:51:39
作 者:andymark   ID:1350  城市:深圳
摘 要:用SetSystemCursor制作一个等待事件的窗体
正 文:

SetSystemCursor 看名字就知道是设置系统指针的涵数,我们常见的指针型态有手型的、繁忙等待的、水平调整、上下调整等等,根据既定的参数我们很容易把自已喜爱的鼠标指针设置为各种型态,来替代系统的指针。就让我们挖掘其功能,扩展一些新的用法吧。
      这一节讲的是怎样利用SetSystemCursor 制作一个等待事件的窗体。准备之前,先在网上找一款动感的自已喜欢的鼠标指针(后缀名为ani) 。完整代码如下:
  
'读取指针文件或一个动画指针文件(扩展名分别是.cur和.ani)
Private Declare Function LoadCursorFromFile Lib "user32.dll" Alias "LoadCursorFromFileA" (ByVal lpFileName As String) As Long
'改变一个标准系统指针
Private Declare Function SetSystemCursor Lib "user32.dll" (ByVal hcur As Long, ByVal id As Long) As Long
'从指定的模块或应用程序实例中载入一个鼠标指针
Private Declare Function LoadCursor Lib "user32" Alias "LoadCursorA" (ByVal hInstance As Long, ByVal lpCursorName As Long) As Long
'复制指定的光标
Private Declare Function CopyCursor Lib "user32" Alias "CopyIcon" (ByVal hcur As Long) As Long
'清除指定的鼠标指针,并释放它占用的所有系统资源
Private Declare Function DestroyCursor Lib "user32" (ByVal hCursor As Long) As Long

Private Const OCR_WAIT = 32514    '系统繁忙指针参数

Dim hCursor As Long
Dim OldCurSor As Long

Private Sub Form_Load()
   '取系统繁忙事件的指针
   OldCurSor = LoadCursor(ByVal 0&, OCR_WAIT)
   '复制指针文件,以便能正常恢复初始状态
   OldCurSor = CopyCursor(OldCurSor)
   '新的指针文件
   hCursor = LoadCursorFromFile(CurrentProject.Path & "\aero_working.ani")
End Sub


'在程序需要处理等待的地方加入下面的代码

'设置新的等待指针
   SetSystemCursor hCursor, OCR_WAIT

'   ..............................   需要处理事件的代码自已加吧

'恢复初始指针
  SetSystemCursor OldCurSor, OCR_WAIT



Private Sub Form_Unload(Cancel As Integer)
'释放指针资源
   If OldCurSor <> 0 Then
        SetSystemCursor OldCurSor, OCR_WAIT
    End If
   DestroyCursor OldCurSor
   DestroyCursor hCursor
End Sub

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

常见问答:

技术分类:

相关资源:

专栏作家

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