![]() |
|
|
![]()
|
|
| bel_nikita |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2304 Регистрация: 12.10.2003 Где: Поезд №21/22 ( ст . Прага ) Репутация: 2 Всего: 47 |
Как изменить цвет диалога, например, в синий?
|
|||
|
||||
| Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 25 Всего: 62 |
Стареешь? Для этого используется сообщение Windows WM_CTLCOLOR, которое элементы управления посылают родительскому окну для собственной отрисовки
Есть следующие идентификаторы: CTLCOLOR_BTN - Кнопка CTLCOLOR_DLG - Диалог CTLCOLOR_EDIT - Элемент редактирования CTLCOLOR_LISTBOX - Список CTLCOLOR_MSGBOX - Окно сообщений CTLCOLOR_SCROLLBAR - Скролинг CTLCOLOR_STATIC - Статический текст Это сообщение отредактировал(а) Coocky - 26.9.2005, 17:04 -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья |
|||
|
||||
| bel_nikita |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2304 Регистрация: 12.10.2003 Где: Поезд №21/22 ( ст . Прага ) Репутация: 2 Всего: 47 |
Это цвет элементов менять. А как мне фон диалога изменить?
У меня есть класс CChildView. Нужно получить его цвет и приминить его к диалогу, который в свою очередь будет отрисоваться на CChildView Вот, пытаюсь изменить цвет диалога:
|
|||
|
||||
| kometa_triatlon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 384 Регистрация: 7.1.2005 Где: Киев Репутация: 1 Всего: 6 |
Coocky
Кстати, это какой-то дурацкий способ. Он чаще всего не работает Часто работает на половину... -------------------- Всё очень просто: сказки обман, Солнечный остров скрылся в туман, Замков воздушных не носит земля, Кто-то ошибся, ты или я. -------------- Программирование - самое большое удовольствие, которое вы можете получить, будучи одетым. |
|||
|
||||
| bel_nikita |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2304 Регистрация: 12.10.2003 Где: Поезд №21/22 ( ст . Прага ) Репутация: 2 Всего: 47 |
Ну, так приведите хоть какой-нибудь код |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Самое тупое, что сразу приходи в голову - перекрыть OnEraseBkgnd и там своей кистью замазать...
Можно и по другому: Фон окна определяется кистью, которая записана в классе окна. Имеется в виду Window class, конечно. Подсунуть свой класс вместь стандартного можно в PreCreateWindow: зарегистрировать свой класс и записать его в структуру CREATESTRUCT (параметр PreCreateWindow). А потом вызвать базовый PreCreateWindow. Код регистрации диалога лучше найти в MFC и списать, чтобы не париться потом с разрегистрацией своего класса. Он не сложный, но наизусть не помню. Добавлено @ 09:39
OnCtlColor нормально работает, но есть ограничения. Скажем, комбобоксу или эдиту неактивному цвет текста фиг поменяешь... -------------------- ... |
|||
|
||||
| takedo |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 501 Регистрация: 1.6.2005 Репутация: нет Всего: 3 |
Для получения цвета можно воспользоваться GetSysColor, GetSysColorBrush. А перерисовать можно и вообще в OnDraw или в OnPaint с нужным цветом.
-------------------- я не гольфист - я хоккеист |
|||
|
||||
| Nastya |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 27.3.2002 Где: Мариуполь Репутация: 1 Всего: 44 |
CWinApp::SetDialogBkColor - но меняет цвет всех диалогово
-------------------- Что бы понять рекурсию, надо понять рекурсию "Профессионал - это человек сделавший все возможные ошибки в очень узкой области". Н.Бор |
|||
|
||||
| Coocky |
|
||||||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е Репутация: 25 Всего: 62 |
Дык ты не путай грешное с праведным мы, МФС- ники этого не любим У тебя , брат не диалог, а представление, производное от CFormView
Так я загружал растр на фон представления,производного от CFormView в обработчике ON_WM_ERASEBKGND Добавлено @ 10:40
Ну зачем же так сразу.. Я молодым разукрашивал диалоги "на раз", все работало.... Уж диалог точно красился -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья |
||||||
|
|||||||
| Madest |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 143 Регистрация: 27.11.2003 Где: Городок Репутация: нет Всего: нет |
Все просто вроде:
Создаем кисть нужного цвета и ее возвращаем
Если эдитбоксы есть, то:
--------------------
|
||||
|
|||||
| Alexsar |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 96 Регистрация: 6.5.2005 Репутация: нет Всего: 1 |
почему данный подход абсолютно бесполезен для windows xp
в 98 всё работает нормально, а в хр ничего не меняется, как будто и нет этого кода? |
|||
|
||||
| AlexPro |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 157 Регистрация: 9.11.2005 Где: Санкт-Петербург Репутация: 3 Всего: 4 |
Темы включены? Может они могут закрывать раскраску? |
|||
|
||||
| Alexsar |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 96 Регистрация: 6.5.2005 Репутация: нет Всего: 1 |
А как-нибудь это можно реализовать в хр?
|
|||
|
||||
| CityAC |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 3.11.2006 Где: Украина Горловка Репутация: 1 Всего: 1 |
А как по нажатию кнопки на диалоге поменять цвет диалогового окна.
Это сообщение отредактировал(а) CityAC - 6.2.2007, 20:51 --------------------
Вижу цель, не вижу припятствий. |
|||
|
||||
| vinter |
|
||||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 4 Всего: 56 |
при перерисовке тоже создай кисть одну, и в кнопке меняй ее цвет на требуемый тебе, а в OnCtlColor возвращай эту кисть, и не забывай после создания кисти Invalidate(); примерно так
|
||||
|
|||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |