цвет надписи на кнопке, WinAPI
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.141] |
|
|
Правила раздела Visual C++ / MFC / WTL (далее Раздела)
FAQ Раздела
Обновления для FAQ Раздела
Поиск по Разделу
MSDN Library Online
цвет надписи на кнопке, WinAPI
|
Сообщ.
#1
,
|
|
|
|
Подскажите, как поменять цвет надписи на кнопке в WinAPI. Черный как-то не устраивает
|
|
Сообщ.
#2
,
|
|
|
|
WM_CTLCOLORBTN и SetTextColor()
|
|
Сообщ.
#4
,
|
|
|
|
Спасибо за ответы!!!!!!!!
У меня есть еще один вопрос:а как можно проверить, надпись на какой именно кнопке я закрашиваю в определенный цвет? ![]() ![]() case WM_CTLCOLORBTN: { HDC hdcButton14 = (HDC) wParam; HBRUSH hb=CreateSolidBrush(RGB(189,190,198)); SetTextColor(hdcButton14,RGB(0,0,255)); SetBkColor(hdcButton14,RGB(189,190,198)); TextOut(hdcButton14,21,7,"*",1); return (long)hb; } А если теперь я хочу красить Button7? Заранее спасибо! |
|
Сообщ.
#5
,
|
|
|
|
Цитата if( ::GetDlgCtrlID( HWND( lParam)) == IDC_BUTTON_XXX) ... |
|
Сообщ.
#6
,
|
|
|
|
Цитата SunDay, 18.05.04, 17:26 case WM_CTLCOLORBTN: { HDC hdcButton14 = (HDC) wParam; HBRUSH hb=CreateSolidBrush(RGB(189,190,198)); SetTextColor(hdcButton14,RGB(0,0,255)); SetBkColor(hdcButton14,RGB(189,190,198)); TextOut(hdcButton14,21,7,"*",1); return (long)hb; } В выделенной строке ошибка. Brush надо либо создавать один раз, а потом подсовывать в CTLCOLORBTN, либо получать Brush по GetStockObject. В противном случае (из-за отсутствия DeleteObject) возникают утечки ресурсов GDI, что приводит в итоге к неправильному отображению окна приложения. |