From: dean.earley@icode.co.uk   
      
   Shell wrote:   
   > In response to the post:   
   > On Mon, 22 Jan 2007 15:25:26 GMT, "EggHead"   
   > stated...and I replied:   
   >   
   >> Hi all,   
   >>   
   >> My development environment is VB 6.0, and my OS is winxp. I would like to   
   know how to find the mouse location at a control when the mouse is point at   
   that control. The problem is that the mouse "whatever" events will not fire   
   since the mouse is    
   hjhack by other control. Anyway, I have the following code and I can check is   
   the mouse over the control or not, however, I cannot find out where the mouse   
   location at that control.   
   >>   
   >> Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As   
   Long   
   >> Private Declare Function WindowFromPoint Lib "user32" (ByVal xPoint As   
   Long, ByVal yPoint As Long) As Long   
   >>   
   >>   
   >> private sub mouseChecker()   
   >> Dim pnt As POINTAPI   
   >> Dim ConvertX As Double   
   >> GetCursorPos pnt   
   >> If WindowFromPoint(pnt.x, pnt.y) = Me.control1.hWnd Then   
   >> 'I cannot find any method in finding the mouse location in that   
   Visual basic control.   
   >>   
   >> End If   
   >> end sub   
   >>   
   >>   
   >>   
   >> thanks   
   >> Egghead   
   >   
   >   
   > Try this (air code)   
   >   
   > 'begin code   
   > Type POINTAPI   
   > X As Long   
   > Y As Long   
   > End Type   
   >   
   > Type RECT   
   > Left As Long   
   > Top As Long   
   > Right As Long   
   > Bottom As Long   
   > End Type   
   >   
   > Type WINDOWPLACEMENT   
   > Length As Long   
   > flags As Long   
   > ShowCmd As Long   
   > ptMinPosition As POINTAPI   
   > ptMaxPosition As POINTAPI   
   > rcNormalPosition As RECT   
   > End Type   
   >   
   > Declare Function GetCursorPos Lib "user32" ( _   
   > lpPoint As POINTAPI) As Long   
   >   
   > Declare Function GetWindowPlacement Lib "user32" ( _   
   > ByVal hwnd As Long, _   
   > lpwndpl As WINDOWPLACEMENT) As Long   
   >   
   > Public Function PointsToMe() As Boolean   
   > Dim WinPos As WINDOWPLACEMENT   
   > Dim Point As POINTAPI, lResult As Long   
   >   
   > lResult = GetCursorPos(Point)   
   >   
   > lResult = GetWindowPlacement(Me.hwnd, WinPos)   
   >   
   > If Point.X >= WinPos.rcNormalPosition.Left And _   
   > Point.X <= WinPos.rcNormalPosition.Right And _   
   > Point.Y >= WinPos.rcNormalPosition.Top And _   
   > Point.Y <= WinPos.rcNormalPosition.Bottom Then _   
   > PointsToMe = True   
   > End Function   
   > 'end air code   
      
   Bare in mind that this will also return true if the OPs window is not on   
   top.   
      
   To Egghead (why can't people use sensible names?):   
   What is it that has captured the mouse as it is broken...   
      
   --   
   Dean Earley (dean.earley@icode.co.uk)   
   i-Catcher Development Team   
      
   iCode Systems   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   
|