![]() |
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]() ![]() ![]() |
|
Kostik88 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 76 Регистрация: 9.5.2008 Репутация: нет Всего: 2 |
Здравствуйте! Сталкнулся с такой проблемой: закрашиваю клиентскую область окна белой кистью ( WHITE_BTUSH), на закрашиваемом окне имеются элементы управления(две кнопки и один чекбокс), так вот при закраске их фон не меняется(см. прикреплённый файл). Вопрос, какбы можно убрать этот фон не совпадающий с цветом фона окна?
Присоединённый файл ( Кол-во скачиваний: 41 ) ![]() |
|||
|
||||
SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: нет Всего: 91 |
Все элементы управления в программе - отдельные окна со своим фоном.
|
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 1 Всего: 250 |
есть флаг по использованию родительского контекста, точно не помню как в винапи он будет
типа (CS_) WS_PARENTDC Это сообщение отредактировал(а) mes - 24.7.2008, 22:22 |
|||
|
||||
Kostik88 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 76 Регистрация: 9.5.2008 Репутация: нет Всего: 2 |
Это я знаю, вовпрос не в том что все элементы это окна со своим фоном, а в том как этот самый фон изменить. ![]() |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 1 Всего: 250 |
||||
|
||||
Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 16 Всего: 39 |
Юзай сообщения, и возвращяй нужный цвет.
case WM_CTLCOLORBTN: case WM_CTLCOLORSTATIC: { SetBkMode((HDC)wParam,TRANSPARENT); return (LRESULT) GetSysColorBrush(COLOR_BTNFACE); } Ноя так понял тебя интересует стиль как у винды ? то юзай такой код, после создания окна нужно этой функции передать HWND окна (диалога):
-------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 1 Всего: 250 |
так ведь в атаче на скриншоте уже установлен ХP-стиль ... ![]() |
|||
|
||||
Kostik88 |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 76 Регистрация: 9.5.2008 Репутация: нет Всего: 2 |
Пробовал, но результат никакой.
|
||||
|
|||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 1 Всего: 250 |
тогда только как предложил Dem_max- надо перегрузить ответ на дочерний запрос родителю о атрибутах |
|||
|
||||
Kostik88 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 76 Регистрация: 9.5.2008 Репутация: нет Всего: 2 |
Dem_max, Вот к примеру я пишу обработку сообщения для чекбокса :
Только цвет фона чекбокса не меняется. 0о Это сообщение отредактировал(а) Kostik88 - 25.7.2008, 17:46 |
|||
|
||||
Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 16 Всего: 39 |
Нифига не установлен, ты к к ехе только присобачил манифест, 'nnjlftn возможность отображать контролы в стиле XP, а тему ХР можно задать только через EnableDialogTheme(HWND hwnd) -------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
Kostik88 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 76 Регистрация: 9.5.2008 Репутация: нет Всего: 2 |
Чтобы убрать этот фон с элементов управления мне обязательно нужно ставить тему ХР чтоли? А присобачил манифест Я, а не mes ![]() Это сообщение отредактировал(а) Kostik88 - 25.7.2008, 18:13 |
|||
|
||||
Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 16 Всего: 39 |
Не ты функцией активизируешь текущую тему. Текущей может быть стандартная или которая изменяет оформление рабочего стола, ты бы лучше сделал как говорят и не ...... нам мозг. -------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
Kostik88 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 76 Регистрация: 9.5.2008 Репутация: нет Всего: 2 |
Dem_max, меньше всего мне хочется ......., такому как ты, мозг!
Это сообщение отредактировал(а) Kostik88 - 26.7.2008, 15:08 |
|||
|
||||
mekhanikus |
|
||||||
Вольноопределяющийся ![]() Профиль Группа: Участник Сообщений: 186 Регистрация: 16.6.2008 Где: Спасск-Дальний Репутация: 1 Всего: 1 |
Попробуй сделать так:
Функция должна возвращать HBRUSH, а ты возвращаеш LRESULT. Это сообщение отредактировал(а) mekhanikus - 27.7.2008, 14:47 |
||||||
|
|||||||
![]() ![]() ![]() |
Правила форума "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. |