Функция ScreenToClient

Declare Function ScreenToClient Lib "user32" _
        (ByVal hwnd As Long, lpPoint As POINTAPI) As Long

ScreenToClient конвертирует экранные координаты заданной точки в клиентские координаты
hwnd
Дескриптор окна, определяющего используемую клиентскую систему координат
lpPoint
Структура POINTAPI с экранными координатами точки. При вызове функции структура заполняется клиентскими координатами

Пример

' Подсвечиваем текст в Text1
' Расположите на форме Text1 и Timer1 (Interval=100)
' Добавьте в секцию General Declarations строчку
Dim highlighted As Boolean

' Меняем цвет текста при движении мыши
Private Sub Text1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If highlighted Then Exit Sub
    highlighted = True
    Text1.ForeColor = vbRed
    Timer1.Enabled = True
End Sub

' Убираем подсветку при выходе мыши
' из области текстового поля
Private Sub Timer1_Timer()
Dim pt As POINTAPI

' Определяем местоположение мыши
GetCursorPos pt
    
' Преобразуем в клиентские координаты
ScreenToClient hwnd, pt

' Вычисляем, находится ли мышь над текстовым полем
If pt.X < Text1.Left Or pt.Y < Text1.Top Or _
   pt.X > Text1.Left + Text1.Width Or _
   pt.Y > Text1.Top + Text1.Height _
Then
   highlighted = False
   Text1.ForeColor = vbBlack
   Timer1.Enabled = False
End If
End Sub

Смотри также

ClientToScreen

Категория

Координаты окна