Как отследить перемещение формы? - VB

Узнай цену своей работы

Формулировка задачи:

Как отследить перемещение формы? Т.е. мне нужно чтобы при каждом перетаскивании мышой в ini файл записывались координаты формы. Свойства Form_Move почему-то нет(((

Решение задачи: «Как отследить перемещение формы?»

textual
Листинг программы
Private Type RECT
  Left As Long
  Top As Long
  Right As Long
  Bottom As Long
End Type
Private Type POINTAPI
  x As Long
  y As Long
End Type
Private Type WINDOWPLACEMENT
  length As Long
  flags As Long
  showCmd As Long
  ptMinPosition As POINTAPI
  ptMaxPosition As POINTAPI
  rcNormalPosition As RECT
End Type
 
Private Declare Function GetWindowPlacement Lib 'user32' (ByVal hwnd As Long, lpwndpl As WINDOWPLACEMENT) As Long
 
Function DeactivateForm(frm As Form, ByVal sAppname As String) As Boolean
  Dim pos As WINDOWPLACEMENT
 
  On Error Resume Next
 
  pos.length = Len(pos)
  Call GetWindowPlacement(frm.hwnd, pos)
  Call DeleteSetting(sAppname, 'Window')
  Call SaveSetting(sAppname, 'Window', 'State', frm.WindowState)
  Call SaveSetting(sAppname, 'Window', 'Left', pos.rcNormalPosition.Left)
  Call SaveSetting(sAppname, 'Window', 'Top', pos.rcNormalPosition.Top)
  Call SaveSetting(sAppname, 'Window', 'Width', pos.rcNormalPosition.Right - pos.rcNormalPosition.Left)
  Call SaveSetting(sAppname, 'Window', 'Height', pos.rcNormalPosition.Bottom - pos.rcNormalPosition.Top)
  frm.Visible = False
  DeactivateForm = True
End Function

Оцени полезность:

5   голосов , оценка 4.6 из 5
Похожие ответы