Страница: 1 |
Ситуация такова. Есть форма. В форме Form1 в процедуре Form_Load стоит следующий код: con& = SendMessage(Me.hwnd, WM_SETHOTKEY, HK_CONTROLA, 0) If con& <> 1 Then MsgBox "You need another hotkey", vbOKOnly, "Error" 'Сказать windows что делать при нажатии на hotkey 'в данном случае - показать окно программы con& = DefWindowProc(Me.hwnd, WM_SHOWWINDOW, 0, 0) End If Если форма видима, то все работает. Но если сделать Form1.Hide, то ничего не получается. Как мне сделать ее видимой по горячей кнопке? Очень нужна ваша помощь!
Ctrl+f покажет форму... Private Const MOD_ALT = &H1 Private Const MOD_CONTROL = &H2 Private Const MOD_SHIFT = &H4 Private Const PM_REMOVE = &H1 Private Const WM_HOTKEY = &H312 Private Type POINTAPI x As Long y As Long End Type Private Type Msg hWnd As Long Message As Long wParam As Long lParam As Long time As Long pt As POINTAPI End Type Private Declare Function RegisterHotKey Lib "user32" (ByVal hWnd As Long, ByVal id As Long, ByVal fsModifiers As Long, ByVal vk As Long) As Long Private Declare Function UnregisterHotKey Lib "user32" (ByVal hWnd As Long, ByVal id As Long) As Long Private Declare Function PeekMessage Lib "user32" Alias "PeekMessageA" (lpMsg As Msg, ByVal hWnd As Long, ByVal wMsgFilterMin As Long, ByVal wMsgFilterMax As Long, ByVal wRemoveMsg As Long) As Long Private Declare Function WaitMessage Lib "user32" () As Long Private bCancel As Boolean Private Sub ProcessMessages() Dim Message As Msg Do While Not bCancel WaitMessage If PeekMessage(Message, Me.hWnd, WM_HOTKEY, WM_HOTKEY, PM_REMOVE) Then Me.Show End If DoEvents Loop End Sub Private Sub Form_Load() Dim ret As Long bCancel = False ret = RegisterHotKey(Me.hWnd, &HBFFF&, MOD_CONTROL, vbKeyF) Me.AutoRedraw = True Hide ProcessMessages End Sub Private Sub Form_Unload(Cancel As Integer) bCancel = True Call UnregisterHotKey(Me.hWnd, &HBFFF&) End Sub Страница: 1 |
Вопрос: HotKey в форме и ее видимость на экране. Как сд...
Добавлено: 16.04.03 11:06
Автор вопроса: Shkoda
Ответы
Всего ответов: 1
Номер ответа: 1
Автор ответа:
E-Man
Вопросов: 3
Ответов: 132
Профиль | | #1
Добавлено: 16.04.03 12:44