![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| MironenkoDima |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 12.6.2013 Репутация: нет Всего: нет |
Добрый день.
Никак не получается заставить работать регулятор TRACKBAR_CLASS. Этот регулятор нужен в строке состояния. (будет отвечать за масштаб) Создаётся без каких-либо проблем, все начальные параметры так же задаются нормально. Да и ползунок передвигается всеми возможными способами. Не могу понять, где обрабатывать сообщения? Родительское окно для него - строка состояния. А для неё обработчика нету. или..?
Присоединённый файл ( Кол-во скачиваний: 2 )
shot_20130612T043714.png 31,88 Kb |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 33 Всего: 183 |
Что значит - нет обработчика? Напиши.
Любые обработчики можно добавить в любое окно путем изменения оконной процедуры. -------------------- ... |
|||
|
||||
| MironenkoDima |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 12.6.2013 Репутация: нет Всего: нет |
Ну тут я сделал слишком "громкое" заявление в силу своей неграмотности. Извините.
Есть ли возможность обработать сообщения более обобщённым способом? |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 33 Всего: 183 |
Так это и есть самый обобщенный способ - сабклассинг то есть.
Сообщение обычно посылаются родителю, вот он и должен их обрабатывать. Однако нельзя не согласиться, что обработка сообщений от трэкбара в строке состояния не очень логична с точки зрения логики приложения. Я бы сделала так: сабклассила строку состояния так, что все нотификации от трэкбара просто пересылаются главному окну. Кроме того, туда же (т.е. в новую процедуру строки состояния) нужно засунуть создание самого трэкбара, избавив главное окно от ненужных подробностей. -------------------- ... |
|||
|
||||
| GremlinProg |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
Есть вариант обойтись без сабклассинга: нужно завести 2 диалоговых ресурса. В первом размещается основное окно, а второй оформляется как дочерний статусбар, на котором можно размещать трекбар и спокойно обрабатывать в этом диалоге уведомления трекбара (WM_COMMAND и WM_NOTIFY). Тогда второй диалог нужно создать на первом, используя функцию CreateDialog
Добавлено через 14 минут и 2 секунды но если смотреть в корень, то функционал управления диалогами реализуется на суперклассинге, так что общая логика Earnest работает и тут. -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
| MironenkoDima |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 12.6.2013 Репутация: нет Всего: нет |
Спасибо за ответы!
Почитал про сабклассинг, всё получилось! Как-то так:
Хотел реализовать и это, но не вышло. Трэкбар не создаётся. Обрабатывал сообщение WM_CREATE и в нём создавал. Можете направить на верное решение, пожалуйста? Это сообщение отредактировал(а) MironenkoDima - 13.6.2013, 16:01 |
||||
|
|||||
![]()
|
| Правила форума "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. |