Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 |

 

  Вопрос: Проверить существует ли фокус на Control'e? Добавлено: 28.12.05 02:44  

Автор вопроса:  HACKER
Есть допустим батон, на нём стоит фокус (кнопка обведина, остаётся нажать ентер...) Как проверить стоит ли этот фокус на кнопке, или др. элементе. Кстати кнопка может быть не моя, так что лучше по hwnd как-то...

Ответить

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

Номер ответа: 1
Автор ответа:
 Mihalыch



ICQ: 373-509-101 

Вопросов: 56
Ответов: 330
 Профиль | | #1 Добавлено: 28.12.05 06:20
Так можно определить имеет окно фокус или нет, ну а батон это или нет определить не сложно.


Option Explicit
    Private Declare Function GetFocus Lib "user32" () As Long
    Private Declare Function GetForegroundWindow Lib "user32.dll" () As Long
    Private Declare Function AttachThreadInput Lib "user32.dll" (ByVal idAttach As Long, ByVal idAttachTo As Long, ByVal fAttach As Long) As Long
    Private Declare Function GetWindowThreadProcessId Lib "user32.dll" (ByVal hwnd As Long, ByRef lpdwProcessId As Long) As Long
    Private Declare Function IsWindow Lib "user32.dll" (ByVal hwnd As Long) As Long
    Private Declare Function GetCurrentThreadId Lib "kernel32.dll" () As Long


Private Sub Timer1_Timer()
    attach
    Me.Caption = "hWnd окна с фокусом - " & Str$(GetFocus())
End Sub
Private Sub attach()
    Dim pid As Long
    Dim sId As Long
    sId = GetWindowThreadProcessId(GetForegroundWindow, pid)
    If sId = 0 Or IsWindow(GetForegroundWindow) = 0 Then
        '"Error!"
    Else
        AttachThreadInput sId, GetCurrentThreadId(), True
    End If
End Sub

Ответить

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



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #2 Добавлено: 28.12.05 12:08
Me.ActiveControl ?

Ответить

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


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #3 Добавлено: 29.12.05 20:30
Mihalыch, окно я могу и сам определить, и ты совершенно прав, батон от окна я тоже отличку... ну вот твоя бодяга именно батоны и др. эл. неловит ведь... только окна - они мне не нужны...

У кого ещё какие варианты?

Ответить

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



Вопросов: 24
Ответов: 332
 Профиль | | #4 Добавлено: 29.12.05 22:51
Как извесно, когда пользователь наводит фокус на элемент управления TextBox, генерируется событие GotFocus. Когда пользователь убирает фокус с этого элемента управления, генерируется событие LostFocus.
Я думаю, стоит попробовать через сабклассинг (WM_SETFOCUS, WM_KILLFOCUS)

Ответить

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


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #5 Добавлено: 30.12.05 02:41
попробую...

Ответить

Номер ответа: 6
Автор ответа:
 Mihalыch



ICQ: 373-509-101 

Вопросов: 56
Ответов: 330
 Профиль | | #6 Добавлено: 30.12.05 05:11
Ну не знаю, не знаю, все ловит без проблем. Может у тебя батоны какие-то другие, а может приближение праздника сказывается…?

З.Ы. С НАСТУПАЮЩИМ!!!

Ответить

Номер ответа: 7
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #7 Добавлено: 30.12.05 06:25
мда... наверное приближения праздника действительно влияет :)
ок, спасибо, тема закрыта.

Ответить

Страница: 1 |

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



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