Главная страницаОбратная связьКарта сайта

Определение потрери/активизации фокуса прораммы



'КОД МОДУЛЯ

Private Const WM_ACTIVATEAPP = &H1C
Private Const GWL_WNDPROC = (-4)
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private m_lWndProc As Long

Public Sub WindowHook(hWnd As Long)
m_lWndProc = SetWindowLong(hWnd, GWL_WNDPROC, AddressOf MessageCenter)
End Sub

Public Sub WindowFree(hWnd As Long)
SetWindowLong hWnd, GWL_WNDPROC, m_lWndProc
End Sub

Private Function MessageCenter(ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
If Msg = WM_ACTIVATEAPP Then
If wParam Then
Form1.OnAppActivate
Else
Form1.OnAppDeActivate
End If
End If
MessageCenter = CallWindowProc(m_lWndProc, hWnd, Msg, wParam, lParam)
End Function

'КОД ФОРМЫ

Private Sub Form_Load()
WindowHook hWnd
End Sub

Public Sub OnAppActivate()
MsgBox "Добро пожаловать назад!"
End Sub

Public Sub OnAppDeActivate()
MsgBox "Покидаете программу?"
End Sub

Private Sub Form_Unload(Cancel As Integer)
WindowFree hWnd
End Sub


Обсудить статью на форуме


Если Вас заинтересовала или понравилась информация программирование на Visual Basic - "Определение потрери/активизации фокуса прораммы", Вы можете поставить закладку в социальной сети или в своём блоге на данную страницу:

Так же Вы можете задать вопрос по работе этого модуля или примера через форму обратной связи, в сообщение обязательно указывайте название или ссылку на статью!
   


Copyright © 2008 - 2017 Дискета.info