Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: как узнать, есть ли фокус на форме? Добавлено: 08.12.05 12:07  

Автор вопроса:  Trusishka | ICQ: 229751913 
Люди, как узнать есть ли в данный момент фокус на форме? VB6

Ответить

  Ответы Всего ответов: 11  

Номер ответа: 1
Автор ответа:
 Dushes



ICQ: 249195431 

Вопросов: 8
Ответов: 110
 Профиль | | #1 Добавлено: 08.12.05 12:22
Public Declare Function GetActiveWindow Lib "user32" Alias "GetActiveWindow" () As Long

И если возвращаемое значение = Твоя_Форма.hwnd ,то форма активна...

Ответить

Номер ответа: 2
Автор ответа:
 Trusishka



ICQ: 229751913 

Вопросов: 36
Ответов: 48
 Профиль | | #2 Добавлено: 13.12.05 10:46
VB ругается на первую строчку, очевидно в скобочки надо чего-нибудь всунуть?

Ответить

Номер ответа: 3
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #3 Добавлено: 13.12.05 11:50
Как ругается то? Небось в форму всунуть пытаешься, а она у тя как Public. Объяви как Private.

Ответить

Номер ответа: 4
Автор ответа:
 Trusishka



ICQ: 229751913 

Вопросов: 36
Ответов: 48
 Профиль | | #4 Добавлено: 13.12.05 12:43
отлично на первую строку теперь не ругается, но вторая строка не работает! вот мой пример второй строки

If MainFrm.hWnd = 1 Then
    Text3.SetFocus
End If

Ответить

Номер ответа: 5
Автор ответа:
 HOOLIGAN



Вопросов: 0
Ответов: 1066
 Профиль | | #5 Добавлено: 13.12.05 12:50
А чего это вдруг hWnd будет равно 1?
hWnd - число достаточно случайное, и присваивается окнам виндой.

Ответить

Номер ответа: 6
Автор ответа:
 Trusishka



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
Автор ответа:
 Trusishka



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
Автор ответа:
 HOOLIGAN



Вопросов: 0
Ответов: 1066
 Профиль | | #8 Добавлено: 13.12.05 14:22
If CLng(MainFrm.hWnd) = CLng(GetActiveWindow)

Это где ж такое тебе подсказали? Небось на vbstreets?
Имхо только там hWnd другой размерности, чем long, и приходится его преобразовывать с CLng :)))

Ответить

Номер ответа: 9
Автор ответа:
 User Unknown



Вечный Юзер!

ICQ: uu@jabber.cz 

Вопросов: 120
Ответов: 3302
 Профиль | | #9 Добавлено: 13.12.05 14:31
Это я подсказал.
Я привык всё явно преобразовывать.
Главное работает:)

Ответить

Номер ответа: 10
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #10 Добавлено: 13.12.05 14:56
Преобразованiе жрет скорость в цiклах

___
Млiн, у меня клавiша В(русская I) не работает =(((((

Ответить

Номер ответа: 11
Автор ответа:
 HOOLIGAN



Вопросов: 0
Ответов: 1066
 Профиль | | #11 Добавлено: 13.12.05 16:39
UU
Ну вот, а я-то подумал, что Trusishka налево ходит :)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам