精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

VB.NET鼠標手勢實現技巧分享

開發 后端
VB.NET鼠標手勢的實現方法將會在這篇文章中詳細給出。初學者可以通過這篇文章介紹的內容對這一應用技巧有一個充分的掌握。

VB.NET可以幫助我們實現許多以前比較難已實現的功能。比如在鼠標手勢的實現方面,就可以使用這一語言輕松的實現。下面就為大家詳細介紹一下這方面的應用技巧,希望能給大家帶來一些幫助。

1.什么是鼠標手勢:

我的理解,按著鼠標某鍵(一般是右鍵)移動鼠標,然后放開某鍵,程序會識別你的移動軌跡,做出相應的響應.

 2.VB.NET鼠標手勢實現原理:

首先說明一下,我在網上沒有找到相關的文檔,我的方法未必與其他人是一致的,實際效果感覺還可以.
鼠標移動的軌跡我們可以將其看成是許多小段直線組成的,然后這些直線的方向就是鼠標在這段軌跡中的方向了. 

 3.VB.NET鼠標手勢實現代碼:

還要說明一下,

a)要捕獲鼠標的移動事件,可以使用vb中的mousemove事件,但這個會受到一些限制(例如,在webbrowser控件上就沒有這個事件).于是這個例子中,我用win api,在程序中安裝個鼠標鉤子,這樣就能夠捕獲整個程序的鼠標事件了.

b)這個里只是個能捕獲鼠標向上,下,左,右的移動的例子.(呵呵,其實這四方向一般也足夠了:))

新建Standrad EXE,添加一個Module

form1的代碼如下

 

  1. Option Explicit   
  2. Private Sub Form_Load()   
  3. Call InstallMouseHook   
  4. End Sub   
  5. Private Sub Form_QueryUnload
    (Cancel As Integer, 
    UnloadMode As Integer)   
  6. Call UninstallMouseHook   
  7. End Sub  

 

#p#

Module1的代碼如下

 

  1. Option Explicit   
  2. Public Const HTCLIENT As Long = 1   
  3. Private hMouseHook As Long   
  4. Private Const KF_UP As Long = &H80000000   
  5. Public Declare Sub CopyMemory Lib "kernel32"
     Alias "RtlMoveMemory" (hpvDest As Any,
     hpvSource As Any, ByVal cbCopy As Long)   
  6. Private Type POINTAPI   
  7. X As Long   
  8. Y As Long   
  9. End Type   
  10. Public Type MOUSEHOOKSTRUCT   
  11. pt As POINTAPI   
  12. hwnd As Long   
  13. wHitTestCode As Long   
  14. dwExtraInfo As Long   
  15. End Type   
  16. Public Declare Function CallNextHookEx
     Lib "user32" _   
  17. (ByVal hHook As Long, _   
  18. ByVal ncode As Long, _   
  19. ByVal wParam As Long, _   
  20. ByVal lParam As Long) As Long   
  21. Public Declare Function 
    SetWindowsHookEx Lib "user32" _   
  22. Alias "SetWindowsHookExA" _   
  23. (ByVal idHook As Long, _   
  24. ByVal lpfn As Long, _   
  25. ByVal hmod As Long, _   
  26. ByVal dwThreadId As Long) As Long   
  27. Public Declare Function UnhookWindows
    HookEx Lib "user32" _   
  28. (ByVal hHook As Long) As Long   
  29. Public Const WH_KEYBOARD As Long = 2   
  30. Public Const WH_MOUSE As Long = 7   
  31. Public Const HC_SYSMODALOFF = 5   
  32. Public Const HC_SYSMODALON = 4   
  33. Public Const HC_SKIP = 2   
  34. Public Const HC_GETNEXT = 1   
  35. Public Const HC_ACTION = 0   
  36. Public Const HC_NOREMOVE As Long = 3   
  37. Public Const WM_LBUTTONDBLCLK As Long = &H203   
  38. Public Const WM_LBUTTONDOWN As Long = &H201   
  39. Public Const WM_LBUTTONUP As Long = &H202   
  40. Public Const WM_MBUTTONDBLCLK As Long = &H209   
  41. Public Const WM_MBUTTONDOWN As Long = &H207   
  42. Public Const WM_MBUTTONUP As Long = &H208   
  43. Public Const WM_RBUTTONDBLCLK As Long = &H206   
  44. Public Const WM_RBUTTONDOWN As Long = &H204   
  45. Public Const WM_RBUTTONUP As Long = &H205   
  46. Public Const WM_MOUSEMOVE As Long = &H200   
  47. Public Const WM_MOUSEWHEEL As Long = &H20A   
  48. Public Declare Function PostMessage Lib 
    "user32" Alias "PostMessageA" (ByVal hwnd 
    As Long, ByVal wMsg As Long, ByVal wParam 
    As Long, ByVal lParam As Long) As Long   
  49. Public Const MK_RBUTTON As Long = &H2   
  50. Public Declare Function ScreenToClient 
    Lib "user32" (ByVal hwnd As Long, lpPoint
     As POINTAPI) As Long   
  51. Public Declare Function GetAsyncKeyState 
    Lib "user32" (ByVal vKey As Long) As Integer   
  52. Public Const VK_LBUTTON As Long = &H1   
  53. Public Const VK_RBUTTON As Long = &H2   
  54. Public Const VK_MBUTTON As Long = &H4   
  55. Dim mPt As POINTAPI   
  56. Const ptGap As Single = 5 * 5   
  57. Dim preDir As Long   
  58. Dim mouseEventDsp As String   
  59. Dim eventLength As Long   
  60. '######### mouse hook #############   
  61. Public Sub InstallMouseHook()   
  62. hMouseHook = SetWindowsHookEx(WH_MOUSE, 
    AddressOf MouseHookProc, _   
  63. App.hInstance, App.ThreadID)   
  64. End Sub   
  65. Public Function MouseHookProc(ByVal iCode 
    As Long, ByVal wParam As Long, ByVal 
    lParam As Long) As Long   
  66. Dim Cancel As Boolean   
  67. Cancel = False   
  68. On Error GoTo due   
  69. Dim i&   
  70. Dim nMouseInfo As MOUSEHOOKSTRUCT   
  71. Dim tHWindowFromPoint As Long   
  72. Dim tpt As POINTAPI   
  73. If iCode = HC_ACTION Then   
  74. CopyMemory nMouseInfo, ByVal lParam, 
    Len(nMouseInfo)   
  75. tpt = nMouseInfo.pt   
  76. ScreenToClient nMouseInfo.hwnd, tpt   
  77. 'Debug.Print tpt.X, tpt.Y   
  78. If nMouseInfo.wHitTestCode = 1 Then   
  79. Select Case wParam   
  80. Case WM_RBUTTONDOWN   
  81. mPt = nMouseInfo.pt   
  82. preDir = -1   
  83. mouseEventDsp = ""   
  84. Cancel = True   
  85. Case WM_RBUTTONUP   
  86. Debug.Print mouseEventDsp   
  87. Cancel = True   
  88. Case WM_MOUSEMOVE   
  89. If vkPress(VK_RBUTTON) Then   
  90. Call GetMouseEvent(nMouseInfo.pt)   
  91. End If   
  92. End Select   
  93. End If   
  94. End If   
  95. If Cancel Then   
  96. MouseHookProc = 1   
  97. Else   
  98. MouseHookProc = CallNextHookEx(hMouseHook,
     iCode, wParam, lParam)   
  99. End If   
  100. Exit Function   
  101. due:   
  102. End Function   
  103. Public Sub UninstallMouseHook()   
  104. If hMouseHook <> 0 Then   
  105. Call UnhookWindowsHookEx(hMouseHook)   
  106. End If   
  107. hMouseHook = 0   
  108. End Sub   
  109. Public Function vkPress(vkcode As Long) As Boolean   
  110. If (GetAsyncKeyState(vkcode) And &H8000) <> 0 Then   
  111. vkPress = True   
  112. Else   
  113. vkPress = False   
  114. End If   
  115. End Function   
  116. Public Function GetMouseEvent(nPt As POINTAPI) As Long   
  117. Dim cx&, cy&   
  118. Dim rtn&   
  119. rtn = -1   
  120. cx = nPt.X - mPt.X: cy = -(nPt.Y - mPt.Y)   
  121. If cx * cx + cy * cy > ptGap Then   
  122. If cx > 0 And Abs(cy) <= cx Then   
  123. rtn = 0   
  124. ElseIf cy > 0 And Abs(cx) <= cy Then   
  125. rtn = 1   
  126. ElseIf cx < 0 And Abs(cy) <= Abs(cx) Then   
  127. rtn = 2   
  128. ElseIf cy < 0 And Abs(cx) <= Abs(cy) Then   
  129. rtn = 3   
  130. End If   
  131. mPt = nPt   
  132. If preDir <> rtn Then   
  133. mouseEventDspmouseEventDsp = mouseEventDsp
     & DebugDir(rtn)   
  134. preDir = rtn   
  135. End If   
  136. End If   
  137. GetMouseEvent = rtn   
  138. End Function   
  139. Public Function DebugDir(nDir&) As String   
  140. Dim tStr$   
  141. Select Case nDir   
  142. Case 0   
  143. tStr = "右"   
  144. Case 1   
  145. tStr = "上"   
  146. Case 2   
  147. tStr = "左"   
  148. Case 3   
  149. tStr = "下"   
  150. Case Else   
  151. tStr = "無"   
  152. End Select   
  153. Debug.Print Timer, tStr   
  154. DebugDir = tStr   
  155. End Function  

 

運行VB.NET鼠標手勢的程序后,在程序窗口上,按著右鍵移動鼠標,Immediate Window就會顯示出鼠標移動的軌跡了.

責任編輯:曹凱 來源: 編程入門網
相關推薦

2010-01-18 16:33:57

VB.NET加密文件

2010-01-14 16:04:32

VB.NET顯示時間

2010-01-18 16:41:47

VB.NET用戶登錄頁

2010-01-18 10:26:19

VB.NET中心旋轉圖

2010-01-07 13:40:50

VB.NET讀取XML

2010-01-13 15:52:59

VB.NET浮動窗體

2010-01-22 11:02:30

VB.NET創建新變量

2010-01-15 19:04:09

2010-01-22 13:16:05

VB.NET初始化數組

2010-01-11 15:31:04

VB.NET拖動窗體

2010-01-13 16:45:44

VB.NET刪除控件

2010-01-08 18:31:45

VB.NET歷史菜單

2010-01-07 10:02:53

Flash控制VB.N

2010-01-22 16:27:19

VB.NET關于對話框

2010-01-13 10:25:30

VB.NET文件夾操作

2010-01-15 19:24:42

2010-01-19 15:30:44

VB.NET比較運算符

2010-01-11 16:04:10

VB.NET使用wit

2010-01-08 18:37:08

VB.NET顯示圖片

2010-01-13 14:41:18

VB.NET列出目錄內
點贊
收藏

51CTO技術棧公眾號

美女流白浆视频| 欧美日韩激情视频一区二区三区| 国产精品久久久久久久久久ktv| 久久国产精品久久w女人spa| 无码人妻精品一区二区三区不卡| 国产精品久久久久久久app| 成人看片黄a免费看在线| 黄色影院在线播放| 蜜臀精品一区二区| 91精品国产综合久久香蕉的特点| 57pao国产一区二区| 亚洲综合第一区| 51ⅴ精品国产91久久久久久| 国内久久婷婷综合| 麻豆app在线观看| 欧美性受黑人性爽| 欧美激情1区2区3区| 在线观看一区二区三区三州| 欧美高清一级片在线观看| 日本黄色小说视频| 日韩激情第一页| 亚洲草久电影| 国产又黄又嫩又滑又白| 91精品国产综合久久久久久漫画| 你懂的视频欧美| 精品一区二区三区四| 国产精品三区四区| 亚洲精品国产无套在线观| 精品伊人久久| 久久久亚洲av波多野结衣| 韩国福利视频一区| 久久综合狠狠综合久久激情| 国产精品女人久久久| 99影视tv| 日本道精品一区二区三区 | 亚洲欧洲一区二区天堂久久| 一女二男一黄一片| 欧美激情专区| 综合精品久久久| 国产乱人伦精品一区| 毛片毛片女人毛片毛片| 97免费高清电视剧观看| 欧美午夜宅男影院在线观看| 日韩成人免费| 日本福利片在线| 人人爽人人爽av| 91成人福利在线| 日韩毛片精品高清免费| 伊人精品一区| www视频在线| 91高清国产视频| 欧美亚洲国产另类| 亚洲精品高清视频在线观看| 精品国产一区二区三区不卡蜜臂 | 秋霞影院一区| 特级西西444www高清大视频| 日本男女交配视频| 欧美xxxx做受欧美| 欧美国产国产综合| 沈樵精品国产成av片| va视频在线观看| 亚洲av毛片在线观看| 国产精品久久久久久久久借妻| 天天做天天摸天天爽国产一区| 91精品一区二区三区综合在线爱 | 亚洲国产91视频| 黄色一级片免费在线观看| 51xx午夜影福利| 亚洲欧美自拍偷拍色图| 一区中文字幕| 亚洲综合激情视频| 26uuu亚洲国产精品| 精品久久久久久久久久久久| 在线观看一区| 成人免费网站观看| 亚洲男人第一av| 免费裸体美女网站| 国产精品一区二区久久久| 在线观看91视频| 极品中文字幕一区| 亚洲精品一区二区三区四区| 国产无遮挡猛进猛出免费软件| 国产精品精品国产| 91精品国产综合久久精品图片| 国内精品伊人久久久久影院对白| 性xxxx搡xxxxx搡欧美| 日本熟妇人妻xxxxx| 国语自产精品视频在线看抢先版图片 | 亚洲国产高清一区二区三区| 涩涩视频在线| 国产一区二区麻豆| 国产精品边吃奶边做爽| 一区二区三区四区国产| 欧美一级黑人aaaaaaa做受| 欧美日韩在线免费视频| 成人午夜免费电影| 久久久久久久久丰满| 久久天堂av| 欧美精品久久久久久久久25p| 久热精品视频在线| 亚洲一区在线视频| 免费不卡在线视频| 日韩一级电影| 国产网红在线观看| 99国产精品99| 国产精品久久久免费看| 国产三区在线视频| 精品国产福利| 午夜免费日韩视频| 欧美成人一区二区| 亚洲视频1区2区| 麻豆成人在线观看| 日韩免费视频| 亚洲欧洲二区| 超碰在线最新| 国产不卡精品视频| 日本三级中文字幕在线观看| 欧美俄罗斯性视频| 精品视频一区二区三区免费| 91免费看`日韩一区二区| 亚洲看片一区| 男人天堂手机在线观看| 日本黑人久久| 欧美综合天天夜夜久久| 久久久不卡影院| 日韩高清在线不卡| 国产欧美日韩| 国产精品成人3p一区二区三区| www久久日com| 在线观看xxx| 人妻少妇精品一区二区三区| 亚洲一二三四五| 欧美 国产 综合| 在线国产精品网| 欧美亚洲在线播放| 色老头一区二区三区| 色哦色哦哦色天天综合| 成人午夜视频免费看| 久久精品中文| 亚洲无线视频| 国产精品一在线观看| 成人av网站在线播放| 欧美亚一区二区三区| 成人日韩在线视频| 欧美日韩午夜爽爽| 久久国产精品久久| 风间由美久久久| 国产精品免费久久久久影院| 91国内揄拍国内精品对白| 日韩在线激情视频| 在线观看亚洲视频| 日韩精品中文字幕在线播放| 日韩女同互慰一区二区| 欧美性xxxxxx少妇| 午夜a成v人精品| 亚洲国产一区二区在线播放| 国产精品久久久久久久久图文区| www.成人网.com| 国产成人在线看| 精品写真视频在线观看 | 精品国产第一国产综合精品| 欧美色网一区| 欧洲av不卡| 欧美日韩视频网站| 成人精品电影在线| 日韩av免费| 成人h在线观看| 欧美伊人亚洲伊人色综合动图| 亚洲va中文在线播放免费| 欧美成人h版| 91亚洲精品| 欧美性www| 永久免费av在线| 亚洲免费不卡视频| 日本黄色免费视频| 亚洲欧美色视频| 加勒比婷婷色综合久久| 精品人体无码一区二区三区| 欧美一区二区三区爽大粗免费| 成人免费大片黄在线播放| 国产精品99久久久久久久久| 日本成人精品在线| 欧美在线亚洲在线| 国产一区二区色| 色综合久久天天综线观看| 日韩中文字幕第一页| 欧美激情一区二区久久久| 久久精品视频在线观看| 欧美丰满老妇厨房牲生活| 18性欧美xxxⅹ性满足| 91精品久久久久久久久青青| 3d精品h动漫啪啪一区二区| 国产欧美欧洲| 亚洲一区综合| www.超碰com| y111111国产精品久久婷婷| 国产精品乱码一区二区三区| 日韩精品福利视频| 久久精品国产一区二区电影| 日韩精品一区二区三区中文不卡| 亚洲欧美日韩国产综合| 精品欧美aⅴ在线网站| 欧美日韩中文字幕综合视频| 欧美一级在线免费| 亚洲欧美另类自拍| 91精品国产一区二区三区香蕉 | 国产欧美1区2区3区| 婷婷国产在线综合| 精品少妇一区二区三区在线视频| 久久精品国产免费观看| 国产精品一区久久久| 国产成人精品福利一区二区三区| 日本电影一区二区三区| 无码人妻精品一区二区三区在线| 国产精品欧美性爱| 久久精品视频免费在线观看| 中文字幕永久在线视频| 永久免费av在线| 日韩综合av| 亚洲精彩视频| 精品无码三级在线观看视频| 国产精品久久久久影院老司| 欧美专区亚洲专区| 最近2019年中文视频免费在线观看 | 制服.丝袜.亚洲.另类.中文| 久久精品国产亚洲一区二区| 国产美女被下药99| 女人被男人躁得好爽免费视频 | 日日碰狠狠添天天爽超碰97| av小说在线观看| 亚洲一区二区三区网站| 欧美家庭影院| 色综合综合网| 激情欧美日韩一区二区| 亚洲超碰精品一区二区| 亚洲男人天堂2024| 国产综合视频在线观看| 国产青青在线视频| 国产精品18在线| 无码精品在线观看| 亚洲高清影院| 三级不卡在线观看| 亚洲在线视频免费观看| 中文字幕av一区| 久久天天狠狠| 一级黄色大片儿| 国产免费一级视频| www.综合网.com| 天天射综合网视频| 国产精品你懂的在线| 日韩av在线最新| 北条麻妃高清一区| 午夜视频在线免费看| 一区二区自拍偷拍| 在线一区视频观看| 亚洲欧美bt| 亚洲mv大片欧洲mv大片精品| 精品中文字幕乱| 在线观看成人免费| 男人在线观看视频| 国产精品久久麻豆| 久久久久久久久国产一区| 国产精品麻豆久久久| 中文字幕日韩欧美| 欧美精品一区二区三区在线四季| 蜜臀av粉嫩av懂色av| 狠狠综合久久av一区二区| 另类视频一区二区三区| 国产综合久久久久久鬼色| 91精品国模一区二区三区| 91久久精品久久国产性色也91| 国产三级国产精品国产专区50| 一卡二卡三卡在线观看| 精品一区二区三区中文字幕在线 | 人人干在线观看| 手机电影在线观看| 亚洲另类视频| 在线国产亚洲欧美| 成人国产在线视频| 中文字幕一区二区三区人妻在线视频 | 久久精品成人欧美大片| 免费观看黄色大片| 国产在线拍揄自揄拍| 高清av不卡| 美女一区二区三区| 亚洲国产精品yw在线观看| 日韩欧美第二区在线观看| 国产精品视频一区二区三 | 精品视频免费观看| 国产福利在线导航| 国产网站在线免费观看| 亚洲先锋影音| 色婷婷久久久综合中文字幕| 91欧美视频网站| 9.1成人看片| 成人免费高清观看| 精品系列免费在线观看| 这里精品视频免费| 僵尸世界大战2 在线播放| 国产精品久久免费| 国产欧美一区二区三区精品观看| 一区二区三区av电影| 国产伊人精品在线| 神马久久久久久久久久久| 欧美私密网站| 99久久久国产精品| 韩国福利视频一区| 国产自产在线视频| 精品97人妻无码中文永久在线 | 国产精品日韩在线| 国产精品无码电影| 成人观看网址| 99国产精品久久久久久久久久久| 美女av一区二区| 亚洲一区二区中文字幕在线观看| 麻豆网站在线| 麻豆精品一二三| 日韩中文字幕在线播放| 性欧美在线视频| 神马午夜伦理不卡| 国产精品123| 欧美亚洲激情视频| 精品人妻一区二区三区日产乱码卜| 国产在线观看www| 国产午夜精品一区二区三区视频 | 欧美一二三视频| youjizz亚洲女人| 99tv成人影院| 午夜国产精品一区| 相泽南亚洲一区二区在线播放| 亚洲无码久久久久| 欧美在线资源| 亚洲视频一区二区| 91国内在线播放| 永久免费毛片在线播放| 国产亚洲欧美日韩俺去了| 成人久久一区二区三区| 日韩黄色精品视频| 欧美国产一区二区三区激情无套| 欧美精品xxxxbbbb| 国产主播在线看| caopo在线| 欧美极品少妇xxxxⅹ高跟鞋| caoporn国产精品免费公开| 少妇久久久久久久| 欧美91大片| 久久久精品在线观看| 欧美成人午夜精品免费| 精品入口麻豆88视频| 欧美日韩一卡二卡| av免费中文字幕| 免费污视频在线观看| 亚洲精品中文在线观看| 一本一道久久a久久综合精品| 香蕉久久一区二区三区| 国产99久久久国产精品潘金| 国产欧美精品日韩精品| 无码人妻av一区二区三区波多野| 国产精品99久久久久久似苏梦涵| 欧美网站一区二区| 成年人免费大片| 欧美激情护士| 欧美视频13p| 日韩手机在线观看视频| 欧美香蕉视频| 欧美午夜不卡视频| 国产原创精品在线| 四虎成人精品一区二区免费网站| 色菇凉天天综合网| 青青在线免费观看视频| 欧美极品免费| 欧美高清视频www夜色资源网| xxx国产在线观看| 美国十次综合久久| 亚洲福利视频久久| 一级做a爰片毛片| 99久久99久久精品国产片桃花| 美女少妇精品视频| 亚洲精品www久久久久久| 久久一区激情| 444亚洲人体| 免费在线一级视频| 国产精品无码永久免费888| 艳母动漫在线观看| 2020国产在线| 欧美精品第1页| 黄色aaa视频| 欧美午夜在线| 国产精品视频精品| 亚洲第一色视频| 国产精品久久久久aaaa樱花| 日本免费a视频| 亚洲青青一区| 亚洲女人天堂成人av在线| 久久婷婷一区二区| 美国三级日本三级久久99 | 精品人体无码一区二区三区| 欧美日韩在线大尺度| 成人性生交大片免费看视频直播| 污视频在线免费|