VB怎么更改鼠标指针样式

VB怎么更改鼠标指针样式,第1张

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函数来设置鼠标的位置。

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

鼠标单击的动作在Visual Basic程序中是被分解开来的,比如鼠标单击TextBox,鼠标单击Label,鼠标单击Button按钮等动作。

编写鼠标单击的动作也是针对鼠标单击某一个控件进行的,比如鼠标单击Button的动作,可以双击Button控件就直接进入了鼠标单击Button控件的动作事件编写,如下:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click

msgbox("鼠标左键单击事件发生")

End Sub


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11555722.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存