Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.144.102.239] |
|
Сообщ.
#1
,
|
|
|
Есть компонент IDC_STATIC1, которому соответствует переменная m_IDC_STATIC1 типа CStatic. Как изменить цвет текста на этом компоненте--например, чтобы он стал красным (RGB(255,0,0))?
Я создал класс CMyStatic, производный от класса CStatic, и в нём переопределил метод OnPaint: CMyStatic::OnPaint { CPaintDC dc(this); CRect rc; GetClientRect(rc); CString str; this->GetWindowText(str); dc.SetTextColor(RGB(255,0,0)); dc.DrawText(str,&rc,DT_LEFT); } Но почему-то это у меня не работает. Как сделать так, чтобы это заработало--то есть чтобы цвет текста в m_IDC_STATIC1 изменился? |
Сообщ.
#2
,
|
|
|
SetTextColor работает только для TextOut(HDC...). Для DrawText наверное надо делать CreatePen, SelectObject и т.д
|
Сообщ.
#3
,
|
|
|
Цитата erslgoeirjh @ Как сделать так, чтобы это заработало--то есть чтобы цвет текста в m_IDC_STATIC1 изменился? "SetTextColor" можно делать в обработчике сообщения WM_CTLCOLORSTATIC, которое получает парент контрола: MSDN, WM_CTLCOLORSTATIC Аналогично можно красить и другие контролы. Только сообщения другие. Возможны проблемы - задницы из Микрософта частично (у некоторых контролов) прекратили этот сервис. |