Здравствуйте algol, Вы писали:
A>А в .bas файле нужно написать:
A>Global lpPrevWndProc As Long
A>Global gHW As Long
A>Public Sub Hook()
A> 'Start subclassing.
A> lpPrevWndProc = SetWindowLong(gHW, GWL_WNDPROC, AddressOf WindowProc)
A>End Sub
A>Public Sub Unhook()
A> Dim temp As Long
A> 'Cease subclassing.
A> temp = SetWindowLong(gHW, GWL_WNDPROC, lpPrevWndProc)
A>End Sub
Я бы не сказал, что это удачное решение — размещение в модуле и наличие одного хука на все окна, но идею-то можно развить при необходимости. Нужно было бы только написАть, что можно размещать и в модуле формы. Тогда можно учитывать единицы измерения формы (но переводить в пикселы!) и иметь для разных форм разные ращзмеры.
A>Private Declare Sub CopyMemoryToMinMaxInfo Lib "KERNEL32" Alias _
A> "RtlMoveMemory" (hpvDest As MINMAXINFO, ByVal hpvSource As Long, ByVal cbCopy As Long)
A>Private Declare Sub CopyMemoryFromMinMaxInfo Lib "KERNEL32" Alias _
A> "RtlMoveMemory" (ByVal hpvDest As Long, hpvSource As MINMAXINFO, ByVal cbCopy As Long)
И где вы только берёте эти функции!