|
Форма, реагирующая на события (min,max,close) |
|
|
Данный пример покажет, как можно запрограммировать действия на попытку свернуть или развернуть форму, нажатия на панель заголовка, или выбора системного меню. Добавьте дополнительный модуль в ваш проект. 'КОД ФОРМЫ
Private Sub Form_Load()
SetProc hWnd
End Sub
'КОД МОДУЛЯ
Option Explicit
Private Declare Function CallWindowProcA Lib "user32" (ByVal lpPrevWndFunc As
Long, ByVal lngHandle As Long, ByVal lngMsg As Long, ByVal lngFirstParam As Long, ByVal
lngLastParam As Long) As Long
Private Declare Function SetWindowLongA Lib "user32" (ByVal lngHandle As Long,
ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private lngOldProc As Long
Public Sub SetProc(ByVal lngHandle As Long)
lngOldProc = SetWindowLongA(lngHandle, -4, AddressOf WinProc)
End Sub
Private Function WinProc(ByVal lngHandle As Long, ByVal lngMsg As Long, ByVal
lngFirstParam As Long, ByVal lngLastParam As Long) As Long
If lngMsg = &HA1 Then
Select Case lngFirstParam
Case 2
Form1.Caption = "Кто-то нажал на заголовке"
Case 3
Form1.Caption = "Кому-то нужно системное меню
формы"
Case 8
Form1.Caption = "Зачем сворачивать форму?!"
Case 9
Form1.Caption = "Кто-то хочет развернуть форму!"
Case 20
Form1.Caption = "Зачем закрывать форму?!"
End Select
End If
WinProc = CallWindowProcA(lngOldProc, lngHandle, lngMsg, lngFirstParam, lngLastParam)
'Автор примера Беляев Данила <outen@mail.ru>
End Function
|
|
|
|
|
|
|