Страница: 1 |
Вопрос: как узнать, есть ли фокус на форме? | Добавлено: 08.12.05 12:07 |
Автор вопроса: ![]() |
Люди, как узнать есть ли в данный момент фокус на форме? VB6 |
Ответы | Всего ответов: 11 |
Номер ответа: 1 Автор ответа: ![]() ![]() ICQ: 249195431 Вопросов: 8 Ответов: 110 |
Профиль | Цитата | #1 | Добавлено: 08.12.05 12:22 |
Public Declare Function GetActiveWindow Lib "user32" Alias "GetActiveWindow" () As Long
И если возвращаемое значение = Твоя_Форма.hwnd ,то форма активна... |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 229751913 Вопросов: 36 Ответов: 48 |
Профиль | Цитата | #2 | Добавлено: 13.12.05 10:46 |
VB ругается на первую строчку, очевидно в скобочки надо чего-нибудь всунуть? |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ICQ: 334781088 Вопросов: 108 Ответов: 2822 |
Профиль | Цитата | #3 | Добавлено: 13.12.05 11:50 |
Как ругается то? Небось в форму всунуть пытаешься, а она у тя как Public. Объяви как Private. |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 229751913 Вопросов: 36 Ответов: 48 |
Профиль | Цитата | #4 | Добавлено: 13.12.05 12:43 |
отлично на первую строку теперь не ругается, но вторая строка не работает! вот мой пример второй строки
If MainFrm.hWnd = 1 Then Text3.SetFocus End If |
Номер ответа: 5 Автор ответа: ![]() ![]() Вопросов: 0 Ответов: 1066 |
Профиль | Цитата | #5 | Добавлено: 13.12.05 12:50 |
А чего это вдруг hWnd будет равно 1?
hWnd - число достаточно случайное, и присваивается окнам виндой. |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 229751913 Вопросов: 36 Ответов: 48 |
Профиль | Цитата | #6 | Добавлено: 13.12.05 12:51 |
вот меня поправили, но теперь процедура срабатывает, даже когда нет фокуса на форме
Private Sub Frame7_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If MainFrm.hWnd = Me.hWnd Then Text3.SetFocus End If End Sub |
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 229751913 Вопросов: 36 Ответов: 48 |
Профиль | Цитата | #7 | Добавлено: 13.12.05 13:04 |
всем спасибо мне подсказали
Private Sub Frame7_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If CLng(MainFrm.hWnd) = CLng(GetActiveWindow) Then Text3.SetFocus End If End Sub |
Номер ответа: 8 Автор ответа: ![]() ![]() Вопросов: 0 Ответов: 1066 |
Профиль | Цитата | #8 | Добавлено: 13.12.05 14:22 |
If CLng(MainFrm.hWnd) = CLng(GetActiveWindow)
Это где ж такое тебе подсказали? Небось на vbstreets? Имхо только там hWnd другой размерности, чем long, и приходится его преобразовывать с CLng ![]() |
Номер ответа: 9 Автор ответа: ![]() ![]() ![]() ![]() Вечный Юзер! ICQ: uu@jabber.cz Вопросов: 120 Ответов: 3302 |
Профиль | Цитата | #9 | Добавлено: 13.12.05 14:31 |
Это я подсказал.
Я привык всё явно преобразовывать. Главное работает ![]() |
Номер ответа: 10 Автор ответа: ![]() ![]() ![]() ![]() ICQ: 192496851 Вопросов: 75 Ответов: 3178 |
Профиль | Цитата | #10 | Добавлено: 13.12.05 14:56 |
Преобразованiе жрет скорость в цiклах
___ Млiн, у меня клавiша В(русская I) не работает =((((( |
Номер ответа: 11 Автор ответа: ![]() ![]() Вопросов: 0 Ответов: 1066 |
Профиль | Цитата | #11 | Добавлено: 13.12.05 16:39 |
UU
Ну вот, а я-то подумал, что Trusishka налево ходит ![]() |
Страница: 1 |
|