VB怎么更改鼠标指针样式

 我来答
华源网络
2022-07-20 · TA获得超过5582个赞
知道小有建树答主
回答量:2486
采纳率:100%
帮助的人:145万
展开全部

  VB设置鼠标的指针样式,可设置窗口中的鼠标样式和系统中的鼠标指针样式,通过操作窗口中的菜单,你就可以很方便的改变鼠标样式,下面是我给大家整理的一些相关解决 方法 步骤,希望对大家有帮助!

  VB怎么更改鼠标指针样式

  这是窗体代码:

  01VERSION 5.00

  02Object = "{F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.2#0"; "Comdlg32.ocx"

  03Begin VB.Form Form1

  04 Caption = "鼠标样式设置器"

  05 ClientHeight = 3210

  06 ClientLeft = 165

  07 ClientTop = 735

  08 ClientWidth = 5490

  09 LinkTopic = "Form1"

  10 ScaleHeight = 3210

  11 ScaleWidth = 5490

  12 StartUpPosition = 3 '窗口缺省

  13 Begin MSComDlg.CommonDialog CommonDialog1

  14 Left = 2640

  15 Top = -45

  16 _ExtentX = 847

  17 _ExtentY = 847

  18 _Version = 393216

  19 End

  20 Begin VB.Menu SetMouse

  21 Caption = "设置鼠标样式"

  22 Begin VB.Menu SetSysMouse

  23 Caption = "设置系统鼠标样式"

  24 End

  25 Begin VB.Menu BackSysMouse

  26 Caption = "恢复系统鼠标样式"

  27 End

  28 Begin VB.Menu SetFormMouse

  29 Caption = "设置窗体鼠标样式"

  30 End

  31 Begin VB.Menu BackFormMouse

  32 Caption = "恢复窗体鼠标样式"

  33 End

  34 End

  35End

  36Attribute VB_Name = "Form1"

  37Attribute VB_GlobalNameSpace = False

  38Attribute VB_Creatable = False

  39Attribute VB_PredeclaredId = True

  40Attribute VB_Exposed = False

  41Option Explicit

  42Const OCR_NORMAL = 32512

  43Const IDC_ARROW = 32512&

  44Const SPI_SETCURSORS = 87

  45Const SPIF_SENDWININICHANGE = &H2

  46Const OCR_NORAAC = 32512 '标准

  47Const GCL_HCURSOR = (-12)

  48' const OCR_APPSTARTING = 32650 '小的沙漏

  49' const OCR_HAND = 32649 '手

  50' const OCR_NO = 32648 '圆

  51' const OCR_SIZEALL = 32646 '十

  52' const OCR_WAIT = 32514 '沙漏

  53Private Declare Function LoadCursorFromFile Lib "user32" Alias "LoadCursorFromFileA" (ByVal lpFileName As String)As Long

  54Private Declare Function SetSystemCursor Lib "user32" (ByVal hcur As Long, _

  55 ByVal id As Long) As Long

  56Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, _

  57 ByVal uParam As Long, _

  58 ByRef lpvParam As Any, _

  59 ByVal fuWinIni As Long _

  60 ) As Long

  61Private Declare Function SetClassLong Lib "user32" Alias "SetClassLongA" (ByVal hwnd As Long, _

  62 ByVal nIndex As Long, _

  63 ByVal dwNewLong As Long _

  64 ) As Long

  65Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, _

  66 ByVal nSize As Long _

  67 ) As Long

  68Dim hCursor As Long

  69Private Sub BackFormMouse_Click() '恢复窗体鼠标的样式

  70 Dim sPath As String * 260 '定义路径

  71 GetSystemDirectory sPath, Len(sPath)

  72 hCursor = LoadCursorFromFile(sPath)

  73 SetClassLong Me.hwnd, GCL_HCURSOR, hCursor

  74End Sub

  75Private Sub BackSysMouse_Click() '恢复系统鼠标的样式

  76 SystemParametersInfo SPI_SETCURSORS, 0, 0, SPIF_SENDWININICHANGE

  77End Sub

  78Private Sub SetFormMouse_Click() '设置窗体的鼠标样式

  79 CommonDialog1.Filter = "CUR文件(*.cur)|*.cur|ANI文件(*.ani)|*.ani|所有文件|(*.*)"

  80 CommonDialog1.ShowOpen

  81 CommonDialog1.CancelError = False

  82 If CommonDialog1.FileName <> "" Then

  83 hCursor = LoadCursorFromFile(CommonDialog1.FileName)

  84 SetClassLong Me.hwnd, GCL_HCURSOR, hCursor

  85 End If

  86End Sub

  87Private Sub SetSysMouse_Click() '设置系统鼠标样式

  88 CommonDialog1.Filter = "CUR文件(*.cur)|*.cur|ANI文件(*.ani)|*.ani|所有文件|(*.*)"

  89 CommonDialog1.ShowOpen

  90 CommonDialog1.CancelError = False

  91 If CommonDialog1.FileName <> "" Then

  92 hCursor = LoadCursorFromFile(CommonDialog1.FileName)

  93 Call SetSystemCursor(hCursor, OCR_NORMAL)

  94 End If

  95End Sub

  程序运行截图如下图所示:

  相关拓展:vb如何控制鼠标

  主要是要通过两个方面:

  (一)对鼠标的停留位置做出判断,也就是得到鼠标在屏幕上停留的位置。

  (二)将鼠标的移动到所确定的位置上。 而实现这个功能则要使用到SetCursorPos这个函数,此函数的功能是设定鼠标位置。

  这个函数的声明如下:

  Public Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal y As Long) As Long

  而仅仅有这个函数是不够的,还需要定义一个type格式的自定义变量。定义为:

  Public Type POINTAPI

  x As Long

  y As Long

  End Type

  它用于存放鼠标的位置(屏幕上的位置)。

  但是一个新的问题又出现了:鼠标到底放在哪里呢?也就是如何获得屏幕上的位置。

  这个问题就要用到另一个函数:GetCursorPos,它的功能是获得屏幕上鼠标的坐标。

  它的声明如下:

  Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long

  这样就可以通过GetCursorPos函数获得鼠标的位置,存放到一个POINTAPI变量中,再通过SetCursorPos函数来设置鼠标的位置。

  这样就可以十分顺利的来控制鼠标了!

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式