Здравствуйте, 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>приложение засадить и пусть управляет
Вопрос решаемый для определенных случаев...
Тем самым мы просто увеличиваем вероятность найти окно со скролом не более того