![]() |
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]() ![]() ![]() |
|
yngwie19 |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 15.6.2008 Где: Новгород Репутация: нет Всего: нет |
Здравствуйте. Вопрос вот какой. У меня есть окно класса "static" для которого Я хочу изменить цвет текста. Делаю так
так все работает, а так нет
почему когда возвращаю 0, то текст не меняется, как Я понимаю WM_CTLCOLORSTATIC, меняет фон который находится за текстом |
||||
|
|||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 1 Всего: 250 |
а может для начала заглянуть в msdn
http://msdn.microsoft.com/ko-kr/library/bb...-us,VS.85).aspx
0 расценивается как FALSE. P.S. в первом возвращении кисти излишне. ![]() |
|||
|
||||
GremlinProg |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
а я сразу и не понял, что это контекст диалога )
все верно mes, +1 за отличные навыки в телепатии ) -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
yngwie19 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 15.6.2008 Где: Новгород Репутация: нет Всего: нет |
||||
|
||||
GremlinProg |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
покажи код Добавлено через 5 минут и 44 секунды в любом случае, возвращение 0 либо из диалога, либо из полновесного окна, означает отсутствие обработки уведомления, т.к. WM_CTLCOLORSTATIC посылается безусловно, и проверить наличие его обработки можно только по результату, возвращенного из оконной процедуры -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
yngwie19 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 15.6.2008 Где: Новгород Репутация: нет Всего: нет |
GremlinProg, ок Спасибо разобрался.
Добавлено через 2 минуты и 59 секунд а если scrollbar созданы как стили главного окна WS_VSCROLL или WS_HSCROLL, то как тогда сделать их субклассинг? |
|||
|
||||
GremlinProg |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
а что нужно субклассить? WM_HSCROLL и WM_VSCROLL? они и так приходят в главное окно, так и перекрываются, тут субклассинг не требуется -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 1 Всего: 250 |
получайте хэндл такого скрола и сабклассите также как и любой другй скрол/окно ![]() P.S. правда о возможности получения хэндла такого скрола не помню, но не вижу причин почему не возможно. Это сообщение отредактировал(а) mes - 20.5.2009, 12:46 |
|||
|
||||
GremlinProg |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
нет, такой scrollbar не реализуется отдельным окном, он находится в неклиентской области главного окна и управляется процедурой стандартного окна, с DefWindowProc и стандартными функциями GetScrollPos, SetScrollPos и т.п. -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
yngwie19 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 15.6.2008 Где: Новгород Репутация: нет Всего: нет |
GremlinProg, дак а если ScrollBar созданы как CreateWindow(), то они тоже проходят в процедуру главного окна, зачем тогда тут субклассинг?
|
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 1 Всего: 250 |
помойму Вы путаетесь, в том что представляет из себя сабклассинг. сабклассинг - это тоже самое задание поведения окну, как и в обычном случае при создании собственного класса окна, но с отличием в том, что оконная функция задается не для всего класса, а только для конкретного окна. Все остальное следствие. Это сообщение отредактировал(а) mes - 20.5.2009, 13:14 |
|||
|
||||
GremlinProg |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
да, я тоже так считаю, yngwie19, посмотри статьи еще и по этой ссылке, по моему этого более чем достаточно (хотя, такое решение должно было быть на первом месте, по идее) -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 1 Всего: 250 |
вот еще с этого форума: http://forum.vingrad.ru/forum/topic-69246.html как раз описывается и сабклассинг и суперклассинг. Главное не пугайтесь этих слов - еще раз повторюсь, это всего лишь задание поведения окну. И как обычно для того чтоб не повторять реализацию обычного (не измененного нами) поведения, мы передаем необратанные команды стандартному для этого окна/класса обработчику. Это сообщение отредактировал(а) mes - 20.5.2009, 13:25 |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 1 Всего: 250 |
если мне память не изменяет (и надеюсь меня поправят если ошибаюсь), то в подобных случаях тип результата трактуется по значению возвращенного результата. 0 и 1 - bool (false и true) иначе то, что подразумевается по контексту, например кисть (как в случае из первого поста) |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Системное программирование и WinAPI" | |
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |