IHTMLSelectElement -> HWND
От: marik2005  
Дата: 29.01.07 12:44
Оценка:
Привет всем!

Как можно имея интерфейс IHTMLSelectElement получить HWND листбокса/комбобокса?
Re: IHTMLSelectElement -> HWND
От: Left2 Украина  
Дата: 29.01.07 13:06
Оценка:
M>Как можно имея интерфейс IHTMLSelectElement получить HWND листбокса/комбобокса?
ЕМНИП в последних версиях IE это уже не настоящее окошко — всё рисуется ручками. Ну а как получить — я бы плясал от координат окошка, и перебирал бы child-ы хоста рекурсивно. Ну и в первую очередь я бы постарался вообще избежать необходимости работать с HWND напрямую.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: IHTMLSelectElement -> HWND
От: marik2005  
Дата: 29.01.07 14:15
Оценка:
Здравствуйте, Left2, Вы писали:

M>>Как можно имея интерфейс IHTMLSelectElement получить HWND листбокса/комбобокса?

L>ЕМНИП в последних версиях IE это уже не настоящее окошко — всё рисуется ручками. Ну а как получить — я бы плясал от координат окошка, и перебирал бы child-ы хоста рекурсивно. Ну и в первую очередь я бы постарался вообще избежать необходимости работать с HWND напрямую.

Про IE7 пока не говорим, интересует всё что до него.
Жду еще варианты. Есть ли способ с использованием MSAA?
Re: IHTMLSelectElement -> HWND
От: sham6215  
Дата: 29.01.07 15:23
Оценка:
Здравствуйте, marik2005, Вы писали:

M>Привет всем!


M>Как можно имея интерфейс IHTMLSelectElement получить HWND листбокса/комбобокса?


ИМХО, имея интерфейс IHTMLSelectElement, получить HWND листбокса/комбобокса нельзя, т.к. этого окна нет.
Открой Spy++ и посмотри на запущенный ИЕ с кнопками, радио и т.п., таких окон нет.
Re[2]: IHTMLSelectElement -> HWND
От: marik2005  
Дата: 30.01.07 07:21
Оценка:
Здравствуйте, sham6215, Вы писали:

S>Здравствуйте, marik2005, Вы писали:


M>>Привет всем!


M>>Как можно имея интерфейс IHTMLSelectElement получить HWND листбокса/комбобокса?


S>ИМХО, имея интерфейс IHTMLSelectElement, получить HWND листбокса/комбобокса нельзя, т.к. этого окна нет.

S>Открой Spy++ и посмотри на запущенный ИЕ с кнопками, радио и т.п., таких окон нет.

открыл и посмотрел — есть (IE6). иначе бы не спрашивал
Re: IHTMLSelectElement -> HWND
От: marik2005  
Дата: 30.01.07 09:07
Оценка: +1
Здравствуйте, marik2005, Вы писали:

M>Привет всем!


M>Как можно имея интерфейс IHTMLSelectElement получить HWND листбокса/комбобокса?


Уже сам нашел. Из IHTMLSelectElement запрашиваем IServiceProvider, у которого вызываем queryService(IID_IAccessible). В итоге получаем IAccessible и вызываем функцию WindowFromAccessibleObject.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.