Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Кнопки


Автор: Lilac 8.5.2004, 14:00
[size=6][/size]

Подскажите кто-нибудь как сменить цвет надписи на кнопке, пожалуйста!
[color=darkblue][/color]

Автор: AndyY 10.5.2004, 16:05
Рисовать самому.

Ставишь стиль ownerdraw, обрабатываешь WM_DRAWITEM, рисуешь используя DrawFrameControl под всем кроме XP, и функции из uxtheme под XP.

пример - в awin на моем сайте (там, правда, кнопарь со стрелкой рисуется).
AWIN\menu_btn.h

Автор: Nastya 10.5.2004, 16:48
Перегружаешь у диалога виртуальную функцию OnCtrlColor, проверяешь для кнопки ли она стработала если да, то
pDC->SetTextColor(новый цвет)

Автор: AndyY 10.5.2004, 17:31
Код

HBRUSH CCtl_mfcDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
pDC->SetTextColor( RGB( 255, 0, 0 ) );
return hbr;
}

Диалог - тот, что генерит студия6 по умолчанию.
Изменяет только текст статика.

смотрим MSDN

WM_CTLCOLORBTN
....
Remarks
By default, the DefWindowProc function selects the default system colors for the button. Buttons with the BS_PUSHBUTTON, BS_DEFPUSHBUTTON, or BS_PUSHLIKE styles do not use the returned brush. Buttons with these styles are always drawn with the default system colors. Drawing push buttons requires several different brushes-face, highlight and shadow-but the WM_CTLCOLORBTN message allows only one brush to be returned. To provide a custom appearance for push buttons, use an owner-drawn button.

так что-увыsmile.gif

Автор: Nastya 11.5.2004, 16:59
Упс! sad.gif
Обшиблась, извеняюсь.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)