Re[4]: Как определить
От: ghostik Россия http://www.deepseo.ru/
Дата: 27.08.04 07:41
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Owner draw скроллбар ? Можно поподробнее ?

Конечно
Возможно я и применил не совсем корректный термин, но под Owner draw я хотел сказать что сам скроллбар рисуется и обрабатывается приложением
Самым простым примером является окошко IE

>>
>> CString strWindowClassName;
>> GetClassName(pWnd->GetSafeHwnd() , strWindowClassName.GetBuffer(MAX_PATH), MAX_PATH);
>> strWindowClassName.ReleaseBuffer();
>> 
>> if ( 0 == strWindowClassName.Compare(_T("Internet Explorer_Server")))
>> {
>>      IsScrollWindow =   TRUE; // возможно есть вертикальный скроллбар.
>> }
>>

PD>Что-то я не понял. Если класс есть Internet Explorer_Server, то
PD>возможно, есть верт. скроллбар. ИМХО это можно про многие классы

Так задача стояла не определить окна в которые нет Скрола а определить окна в которых он ТОЧНО есть...
А я ко всему прочему сказал как определить есть ли у класса Internet Explorer_Server скролл или нет
правда и это не во всех случаях возможно. Но тем не менее кол-во найденных окон со скролом увеличивается...

PD>сказать. Скорее уж можно сказать, у каких классов его нет — button, к

PD>примеру, точно не имеет

Вот как раз тут сказать "точно не имеет" нельзя
Мне же ни что не мешает засабклассить кнопку пририсовать к ней скрол и сделать так что бы текст на кнопке был скролируемый ))
И ни у кого не бедет механизма выяснит есть ли скрол на кнопке или нет

>> что бы быть 100% уверенным что есть скроллбар нужно получить IHTMLDocument2 и хорошенько пропарсить там разобрать на фреймы и тд...

PD>А фреймы — не отдельные окна ?

К сожалению нет и вы можете сами в этом убедится натравив Spy

>> Когда управление окном происходит через CScrollBar практичесски невозможно сказать каким окном он управляет


PD>Ну если иметь в виду, что им отдельный контрол управляет — вопрос вообще

PD>не решаемый. Так как этот отдельный контрол можно в принципе и в другое
PD>приложение засадить и пусть управляет

Вопрос решаемый для определенных случаев...
Тем самым мы просто увеличиваем вероятность найти окно со скролом не более того
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.