<em id="0a85b"><option id="0a85b"></option></em>

<abbr id="0a85b"></abbr>

      <nobr id="0a85b"></nobr>
        <tr id="0a85b"></tr>
        9久久伊人精品综合,亚洲一区精品视频在线,成 人免费va视频,国产一区二区三区黄网,99国产精品永久免费视频,亚洲毛片多多影院,精品久久久无码人妻中文字幕,无码国产欧美一区二区三区不卡
        學習啦>學習電腦>電腦硬件知識>鍵盤鼠標>

        鼠標APi函數

        時間: 沈迪豪908 分享

          愛學習的小伙伴們,你們知道什么是鼠標APi函數嗎?不知道的話跟著學習啦小編一起來學習了解什么是鼠標APi函數。

          鼠標APi函數

          得到當前鼠標指針的坐標:GetCursorPos函數

          聲明:

          public Type POINTAPI

          x As Long

          y As Long

          End Type

          Public Declare Function GetCursorPos Lib "user32" _

          (lpPoint As POINTAPI) As Long 參數缺省為byref指針傳遞

          調用:先聲明一個自定義類型變量: Dim z As POINTAPI

          Private Sub Timer1_Timer()

          GetCursorPos z 注:這里z是引用地址傳遞,其值改變,就象"返回值"

          Label1.Caption = z.x

          Label2.Caption = z.y

          End Sub

          參數lpPoint返回鼠標在屏幕上坐標(不限于程序窗體),如將鼠標指針移到屏幕左上角時,z.x=0,z.y=0,而鼠標移到屏幕右下角時,z.x=639;z.y=477

          ===========================================================

          設置鼠標在屏幕上的坐標 : SetCursorPos函數

          聲明:

          Private Declare Function SetCursorPos Lib "user32" (ByVal X As Long, ByVal Y As Long) As Long

          調用如:Private Sub Command1_Click()

          Call SetCursorPos(600, 100) 將鼠標定位到屏幕(600,100)處。

          End Sub

          很簡單,注:屏幕是以象素為單位的(與屏幕分辨率設定有關)。不是緹。

          ==========================================================

          自動按下鼠標按紐:mouse_event過程函數

          該過程能在程序中模擬手工按下或抬起鼠標,移動鼠標的操作,聲明:

          Public Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)

          一般只用它的第1個參數,指明按下或抬起哪個按紐,如果要模擬鼠標移動,則要用到第2,3個參數dx和dy, 而最后面兩個參數始終不用。

          第1個參數dwFlags的可能設置值如下:

          MOUSEEVENTF_LEFTDOWN=&H2: 模擬鼠標左鍵按下

          MOUSEEVENTF_LEFTUP :模擬鼠標左鍵抬起

          MOUSEEVENTF_RIGHTDOWN: 模擬鼠標右鍵按下

          MOUSEEVENTF_RIGHTUP :模擬鼠標右鍵抬起

          MOUSEEVENTF_ABSOLUTE=&H8000: 由參數dx和dy指定鼠標坐標系統中的一個絕對位置。在鼠標坐標系統中,屏幕在水平和垂直方向上均勻分割成65535×65535個單元

          MOUSEEVENTF_MOVE=&H1 :移動鼠標

          調用如:在屏幕上指定位置按下鼠標左鍵:

          Public Const MOUSEEVENTF_LEFTDOWN = &H2

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

          Private Sub Timer1_Timer()

          SetCursorPos 300, 20

          mouse_event MOUSEEVENTF_LEFTDOWN, 0&, 0&, 0&, 0&

          End Sub

          模擬鼠標移動需要設置其dx和dy參數來確定鼠標位置,這時第1個參數用MOUSEEVENTF_MOVE加上MOUSEEVENTF_ABSOLUTE組合,如下:

          Public Const MOUSEEVENTF_MOVE = &H1

          Public Const MOUSEEVENTF_ABSOLUTE = &H8000

          mouse_event MOUSEEVENTF_ABSOLUTE + MOUSEEVENTF_MOVE, 65535, 65535, 0&, 0& '移動鼠標

          mouse_event MOUSEEVENTF_LEFTDOWN, 0&, 0&, 0&, 0& '按下鼠標

          這樣可省去用SetCursorPos函數,不過它不以象素為度量單位,而是將長寬分別平分為65535個鼠標位置點,要注意。

          補充說明:

          參數dx-- Long,根據是否指定了MOUSEEVENTF_ABSOLUTE標志,指定水平方向的絕對位置或相對運動

          參數dy-- Long,根據是否指定了MOUSEEVENTF_ABSOLUTE標志,指定垂直方向的絕對位置或相對運動

          ==============================================

          限制鼠標活動區域函數:ClipCursor函數

          限制光標只能在參數lpRect給出的矩形區域內運動。聲明:

          Public Declare Function ClipCursor Lib "user32" (lpRect As RECT) As Long

          參數lpRect聲明為RECT型,RECT的聲明如下:

          Public Type RECT

          Left As Long

          Top As Long Left,Top為左上角坐標。

          Right As Long

          Bottom As Long Right,Bottom為右下角坐標。

          End Type

          注:以上坐標使用的是屏幕坐標。

          調用如:

          Dim lxnRect As RECT

          Private Sub Form_Click()

          Static a As Boolean

          a = Not a

          If a = True Then 活動范圍為Form1

          lxnRect.Left = Form1.Left \ Screen.TwipsPerPixelX

          lxnRect.Top = Form1.Top \ Screen.TwipsPerPixelY

          lxnRect.Right = (Form1.Left + Form1.Width) \ Screen.TwipsPerPixelX

          lxnRect.Bottom = (Form1.Top + Form1.Height) \ Screen.TwipsPerPixelY

          ClipCursor lxnRect

          Else 活動范圍為全屏幕

          lxnRect.Left = 0

          lxnRect.Top = 0

          lxnRect.Right = Screen.Width \ Screen.TwipsPerPixelX

          lxnRect.Bottom = Screen.Height \ Screen.TwipsPerPixelY

          ClipCursor lxnRect

          End If

          End Sub

          上例是這樣的,在窗體上單擊時,鼠標活動限在此窗體,再單擊,則恢復為全屏幕活動范圍。

          注:在VB中,所有尺寸都化為緹了(包括screen對象的width,height),而在API中,所有尺寸都為象素,因此,要統一單位,用轉換比例screen對象的TwipsPerPixelX和TwipsPerPixelY(好象值就等于15。不知是否固定不變。)

          ======================================

          顯示/隱藏鼠標指針:ShowCursor函數

          該函數可用于隱藏鼠標,但鼠標仍然可"看不見地移動"。聲明:

          Declare Function ShowCursor Lib "user32" (ByVal bShow As Long) As Long

          參數很簡單:bShow--當為true且"函數"返回值大于等于0時,顯示指針,當為false且"函數"返回值小于0時,隱藏指針。

          注:該函數的函數返回值需要注意:它返回"顯示計數",windows維持著一個內部顯示計數;倘若bShow為TRUE,那么每調用一次這個函數,計數就會遞增1;反之,如bShow為FALSE,則計數遞減1。只有在這個計數大于或等于0的情況下,指針才會顯示出來。而小于0時則隱藏,因此,不單是簡單地把bShow設為false就可以了。不然要想再使指針顯示出來,可能會遇到困難。如:

          Dim a As Boolean

          Private Sub Form_Click()

          a = False

          x = ShowCursor(a)

          Print x

          End Sub

          如果我們多次單擊form窗體,則x的值會變為-1,-2,-3,-4……這時,如果再簡單地把a改為true,則單擊1次時指針不會重顯,x的值會變為-3,-2,-1,0……只有多次單擊使x等于大于0的時候,指針才會重顯。

          ===========================================

          在VB中捕捉mouse_leave事件:SetCapture和ReleaseCapture函數

          SetCapture函數:設置鼠標捕獲到指定窗口,使該窗口接收所有鼠標輸入。

          ReleaseCapture函數:釋放鼠標捕獲。

          聲明:

          Declare Function SetCapture Lib "user32"(ByVal hwnd As Long) As Long

          Declare Function ReleaseCapture Lib "user32"() As Long

          參數:hwnd--要接收所有鼠標輸入的窗口句柄。

          調用如(捕捉command2的mouseleave"事件":

          Private Sub Command2_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

          Text1.Text = X & "," & Y

          Dim MouseOver As Boolean

          MouseOver = (0 <= X) And (X <= Command2.Width) And (0 <= Y) And (Y <= Command2.Height) 這里要注意,一個控件的mouse類事件返回的X,Y坐標值是此控件自身的窗口坐標,不是Form的坐標!所以左上角都是(0,0)-右下角(width,height).

          If MouseOver Then 當鼠標在command2上時,

          Command2.BackColor = RGB(255, 255, 0)

          SetCapture Command2.hwnd 使command2窗口響應鼠標輸入。

          Else 當鼠標離開時,以下寫mouseleave的內容。

          Command2.BackColor = RGB(120, 120, 120)

          ReleaseCapture command2不再響應鼠標動作

          End If

          End Sub

        鼠標APi函數相關文章:

        1.網絡游戲外掛技術

        2.鍵盤事件的掛鉤監控原理及其應用探討論文

        3.Excel的命名功能

        4.32位win 7怎么用4G內存

        1995890 主站蜘蛛池模板: 四虎影视国产精品永久在线| 狠狠色综合久久狠狠色综合| 精品人妻二区中文字幕| 国内丰满少妇一A级毛片视频 | gogogo高清在线观看视频中文| 国产精品亚洲日韩AⅤ在线观看| 小伙无套内射老熟女精品| 一本大道无码日韩精品影视| 日韩av一区二区三区不卡| 97精品尹人久久大香线蕉| 国产精品视频免费一区二区三区| 国产美女自慰在线观看| 久久精品女人的天堂av| 午夜不卡欧美AAAAAA在线观看| 人妻日韩精品中文字幕| 亚洲综合成人av在线| 黑人巨大精品欧美在线观看| 久久婷婷五月综合97色直播| 久久亚洲日本不卡一区二区| 国产一国产精品免费播放| 亚洲日韩精品制服丝袜AV| 国产偷国产偷亚洲高清日韩| 久久88香港三级台湾三级播放| 国产精品一区二区插插插| 五月天天天综合精品无码| 秋霞人妻无码中文字幕| 另类 专区 欧美 制服丝袜| 在线看av一区二区三区| 亚洲成人av综合一区| 亚洲欧美偷国产日韩| 国产成人亚洲欧美二区综合| 日韩av无码精品人妻系列| 偷炮少妇宾馆半推半就激情| 国产亚洲精品欧洲在线视频| 国产午夜亚洲精品福利| 日韩av一区二区三区不卡| 亚洲情综合五月天婷婷丁香| 国产精品视频免费一区二区三区| 国产蜜臀av在线一区二区| 18禁裸乳无遮挡啪啪无码免费 | 日韩午夜福利视频在线观看|