![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| ecspertiza |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 3.11.2008 Где: г.Смоленск Репутация: нет Всего: 5 |
Собственно вопрос, как правильно получить Extended Window Styles из HWND окна ? На данный момент у меня стоит задача отловить все скролищиеся окна в системе, пока делаю так
пробегаю по всем окнам, затем смотрю их детей и ищю те компоненты которые будут скролиться, на сам скролл проверяю так
и так
но, есть жирное но, почему то WS_EX_RIGHTSCROLLBAR или WS_EX_LEFTSCROLLBAR никогда не отлавливается. В том же spy++ в свойствах элемента вижу WS_EX_RIGHTSCROLLBAR, у меня это не ловится. Естественно я задаюсь вопросом может я как то не так проверяю или не верно получаю эти свойства ? |
||||||
|
|||||||
| Amp |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 886 Регистрация: 17.2.2009 Репутация: нет Всего: 17 |
Слушай, точно помню, что был какой-то опенсорсный аналог Spy++, но не могу вспомнить названия. В его исходники можно было бы посмотреть.
|
|||
|
||||
| GremlinProg |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
Флага WS_EX_RIGHTSCROLLBAR не существует, поэтому и не отлавливиется. Этот флаг "логический", чисто для удобства восприятия кода, в противовес WS_EX_LEFTSCROLLBAR:
А вот это врятли. Другое дело, левый скроллбар у нас в основном не используется ) Добавлено через 4 минуты и 28 секунд Впрочем, как я уже говорил, Вам нужно ловить не WS_EX_(LEFT)[RIGHT]SCROLLBAR, а WS_(V)[H]SCROLL -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
| ecspertiza |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 3.11.2008 Где: г.Смоленск Репутация: нет Всего: 5 |
Уфф, давно сюда не заходил
К сожалению этого мало, вот как пример стилей окна http://joxi.ru/kGPeUv3JTJD9ENPdLcU . Из того же spy++. У окна отсутствует WS_(V)[H]SCROLL, но есть WS_EX_RIGHTSCROLLBAR. Это окно Chrome. |
|||
|
||||
| GremlinProg |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
Если ни один из двух методов не определяет скролл, это еще не значит, что скролл не нарисован вручную. Мой Хром(32.0.1700.76), к примеру даже адресную строку генерирует без стандартного EDIT. Что ему какой-то элементарный скробблар Добавлено через 3 минуты и 47 секунд Наличие "вручную нарисованного скроллбара" программно Вы просто не определите... Добавлено через 8 минут и 6 секунд если только в частных случаях: чтение памяти процесса, определение каких-то индивидуальных структур для этого компонента, определение структур иерархии родительских компонент (если он не лежит в статической памяти), поиск в них методом чтения документации (что врят ли вообще документируется) ити "тыка". -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
| GremlinProg |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
WS_EX_RIGHTSCROLLBAR - антипод WS_EX_LEFTSCROLLBAR, он ни как не гарантирует наличия скроллбара, он гарантирует только то, что WS_EX_LEFTSCROLLBAR отключен, ничего более -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |