MyTetra Share
Делитесь знаниями!
Открытие формы по координатам курсора
Время создания: 16.03.2019 23:43
Раздел: Разные закладки - VBA - Access - msa.polarcom.ru - 05 Формы
Запись: xintrea/mytetra_db_adgaver_new/master/base/15319721988zhyv0itxz/text.html на raw.githubusercontent.com

Открытие формы по координатам курсора

... Очевидно такая функция может пригодиться для написания своих "псевдо-контекстных" меню. Или еще для чего-нибудь. Итак, покопавшись в API функциях я нашел решение этой проблемы.

Вставляем следующий код в модуль формы и она всегда будет открываться с "привязкой" к курсору.


Private Declare Function MoveWindow Lib "user32.dll" (ByVal hwnd As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long

Private Declare Function GetCursorPos Lib "user32.dll" (lpPoint As POINT_TYPE) As Long

Private Declare Function GetWindowRect Lib "user32.dll" (ByVal hwnd As Long, lpRect As Rect) As Long


Private Type POINT_TYPE

x As Long

y As Long

End Type


Private Type Rect

left As Long

top As Long

right As Long

bottom As Long

End Type


Private Sub Form_Open(Cancel As Integer)

Dim coord As POINT_TYPE 'координаты курсора

Dim retval As Long 'возвращаемое значение

Dim r As Rect 'размеры окна

retval = GetCursorPos(coord) 'считываем позицию курсора

retval = GetWindowRect(Me.hwnd, r) 'считываем размеры текущего окна

' Перемещаем окно формы по позиции курсора

retval = MoveWindow(Me.hwnd, coord.x, coord.y, r.right - r.left, r.bottom - r.top, 1)

End Sub




Так же в этом разделе:
 
MyTetra Share v.0.65
Яндекс индекс цитирования