• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    自己編程模擬MouseEnter,MouseExit事件

    發布: 2007-7-14 20:28 | 作者: 佚名    | 來源: 網絡轉載     | 查看: 12次 | 進入軟件測試論壇討論

    領測軟件測試網 很多第三方的控件都提供的 MouseEnter 和 MouseExit 事件來補充 MouseMove 事件的不足(MouseMove 事件不能有效的捕獲鼠標是否已在控件外),但是這些控件或要注冊,或集合了其他實際沒有什么作用控件,另外在程序中加入太多的控件也會影響程序的性能,利用 Windows 的 API 函數,我們可以在 MouseMove 中模擬 MouseEnter 和 MouseExit,雖然我提供的源代碼中沒有真正的這兩個事件,但的確提供了這兩個事件所具備的功能。好了!讓我們實現吧。

    首先加載一個模塊,在模塊中聲明以下兩個 API 函數:

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

    SetCapture 的功能是:設置鼠標捕獲指定的窗口(Windows 每個控件都是一個窗口。比如桌面上顯示的圖標就是一個窗口,其實是兩個,另一個顯示描述這個圖標的文本),系統將收到這個窗口所有的鼠標移動或擊按的所有信息。

    ReleaseCapture 的功能是:取消捕獲鼠標信息。

    Windows 系統就是一個消息系統,系統一直在等待用戶的消息,并加一相應,但處理完一個消息后,系統有處以下一輪的等待。消息傳遞是 Windows 的核心。

    讓我們在 Form1 中放置一個按鈕或其他控件,但此控件必須具有窗口句柄(hWnd),比如 VB 提供的 Image 控件是一個次圖形控件,沒有窗口句柄,而 Picture,Command Button 等控件就有窗口句柄,我們就拿 Command Button 來作示范,在 Form1 上放置一個 Command Button,在 Command1_MouseMove()事件內加入以下代碼:

    Private Sub Command1_MouseMove(Button As Integer, _
    Shift As Integer, X As Single, Y As Single)
    With Command1

    '當鼠標在越出控件外
    If Not ((X < 0) Or (Y < 0) Or _
    (X > .Width) Or (Y > .Height)) Then

    '鼠標指針在按鈕外時,讓其他控件也收到標事件
    ReleaseCapture

    '為了不讓 MouseMove 事件反復觸發
    If .Caption <> "outside" Then
    .Caption = "outside"
    End If

    '鼠標指針在按鈕上,捕獲他但鼠標移出是我們將收到鼠標事件
    SetCapture .hwnd

    Else
    .Caption = "inside"
    End If
    End With
    End Sub 

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>