![]() |
|
|
![]()
|
|
| Aids |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 25.8.2009 Репутация: нет Всего: нет |
не могу поменять цвет кнопки.
не работает. Что сделал не так? |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
А где ты это делаешь? И что за кнопка?
-------------------- ... |
|||
|
||||
| Aids |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 25.8.2009 Репутация: нет Всего: нет |
Это событие на кнопку Bt0, должна поменять цвет Bt1.
Кнопка из ресурсов:
|
||||
|
|||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Тогда все не так. Делаешь, в смысле.
В приведенном коде ты создаешь кисть и выбираешь ее в контекст, вот и все. С чего ты взял, что это заменит цвет кнопки? Откуда система о твоей кисти узнает? Более того, кисть накроется сразу по выходу из функции, где ты ее создаешь. Чтобы сделать кнопку нестандартного цвета, нужно сделать ее owner-draw, иначе никак. Вот в коде рисования кнопки ты можешь создать кисть, выбрать ее в контекст и нарисовать кнопку. Вроде недавно была тема по поводу рисования owner-draw кнопок, поищи. -------------------- ... |
|||
|
||||
| Alca |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 6 Всего: 50 |
http://www.codeproject.com/KB/buttons/oddbutton.aspx
Добавлено через 52 секунды http://www.codeproject.com/KB/buttons/nati...32xpthemes.aspx Добавлено через 1 минуту и 4 секунды http://www.codeproject.com/info/search.asp...tton&sbo=kw |
|||
|
||||
| Aids |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 25.8.2009 Репутация: нет Всего: нет |
Earnest
Какое событие надо вызвать, чтобы система узнала о новом контексте? Или какое обработать?
почему накроется. я ведь память выделяю из кучи, а не из стека.
я лиш потеляю указатель на pPen Это сообщение отредактировал(а) Aids - 29.9.2009, 14:33 |
||||||
|
|||||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Никакое. В смысле нет такого способа. Да, верно, не заметила. Но суть это не меняет. Тебе нужно самому рисовать кнопку, that's it. Alca, кстати, тебе примеров накидал. Так что изучай. -------------------- ... |
|||
|
||||
| Aids |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 25.8.2009 Репутация: нет Всего: нет |
ничего не пойму. мне что придётся на подобии CBitmapButton класса использовать и прорисовывать как минимум два состояния нажатия и отжатия? Можно же как то подругому наверное? Ведь на форме же можно рисовать! так и на кнопке можно!
|
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Именно. Можно, для этого и придуман стиль OwnerDraw. А ты думаешь в OnPaint рисовать будет проще? Ничего подобного. DrawItem тебе все расскажет: в каком состоянии кнопка (нажата\отжата, в фокусе или нет). А в OnPaint тебе самому этим заниматься придется. Ну не поддерживает стандартная кнопка изменение фона, всегда рисует стандартной кистью, наплевав на все. MSDN читай. В принципе, если используется манифест и темы, то вроде кнопка реагирует на CUSMOMDRAW, тогда чуть-чуть меньше самому рисовать - можно писать только то, что нестандартно. Но точно не знаю - вроде где-то недавно промелькивало. Но поскольку кнопка - один из самых простых для рисования контролов, то я бы не стала париться. Все рисование - фон, рамка и текст. -------------------- ... |
|||
|
||||
| Aids |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 25.8.2009 Репутация: нет Всего: нет |
Earnest
А если мне надо поменять цвет шрифта у надписи кнопки, то её тоже придётся рисовать. |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Да, нажимаемые кнопки поддаются только owner-draw. Но это очень просто, как уже было сказано.
-------------------- ... |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |