Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Power Basic

Страница: 1 |

 

  Вопрос: ChildWindowFromPoint Добавлено: 07.08.05 20:33  

Автор вопроса:  SyavX
Hello, World!
 Есть у меня код процедуры таймера:
Sub TimerProc(ByVal hWnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long)
Local hParent As Dword
Local hChild As Dword
Local p As POINTAPI

    Call GetCursorPos(p)

    hParent = WindowFromPoint(p.x, p.y)

    If GetParent(hParent) Then
        Call ScreenToClient(hParent, p)
        hChild = ChildWindowFromPointEx(hParent, p.x, p.y, %CWP_SKIPINVISIBLE)

        If hChild = hParent Then
            hParent = GetParent(hParent)
            Call GetCursorPos(p)
            Call ScreenToClient(hParent, p)
            hChild = ChildWindowFromPointEx(hParent, p.x, p.y, %CWP_SKIPINVISIBLE)
        End If
    End If
' ...
End Sub

 Объясните пожалуйста почему, когда я навожу курсор на контрол во фрэйме, hChild содержит дескриптор этого фрэйма, а не дескриптор нужного мне контрола. Такой прокол наблюдается почти во всех диалогах Wind'ы.
 Здесь проблема "Родителей и Детей" наблюдается :)

Ответить

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

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



Вопросов: 25
Ответов: 149
 Профиль | | #1 Добавлено: 09.08.05 23:50
"Мертвые с косами стоят, и тишина..."

Ответить

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



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

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #2
Добавлено: 10.08.05 00:49
у одного родителя может быть несколько детей, возможно трабл тут...

      ;(с) Мститель :)

Ответить

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


 

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

Вопросов: 236
Ответов: 8362
 Профиль | | #3 Добавлено: 10.08.05 02:21
не "родителя", а "родителей" !

мама ж и папа...

:))))))))))))))))))))))))

Ответить

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



Вопросов: 0
Ответов: 1876


 Профиль | | #4 Добавлено: 10.08.05 04:29
Ну написано же...

The search is restricted to immediate child windows, grandchildren and deeper descendants are not searched.


Так что правильно всё. Нужно, если фрейм, указывать родителем его, а не форму...

Ответить

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



Вопросов: 25
Ответов: 149
 Профиль | | #5 Добавлено: 11.08.05 02:10
 Эксперементы с ф-цией EnumChildWindows показали: фрэймы в Wind'е - бездетные! От всех разговоров, о том, что-бы кого-небудь усыновить (удочерить), фрэймы уклоняются. А вся та стая безпризорников, от которых отказались фрэймы находится под заботливым родительским крылом родительской формы :) В итоге внуков, а тем более правнуков у этой формы нет.

 P.S.
 Для эксперемента выбрал диалог "Свойства системы" (Win + Break)
 P.P.S.
 Значит ChildWindowFromPoint следует передавать дескриптор формы, и неизвестно с какими координатами точку...

Ответить

Страница: 1 |

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



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