Здравствуйте, vitagon, Вы писали:
V>Зовут Виталик,
V>Помогите начинающему..
V>в custom control окне хочу поменять цвет background.. Какое событие отловить и как делать фон в окне?
V>Я теперь долго буду надоедать..
Можно ловить сообщение WM_PAINT, соотносить его с OnPaint и соотвественно:
void CYourControl::OnPaint()
{
CPaintDC dc(this); // device context for painting
// TODO: Add your message handler code here
CRect rect;
dc.GetClipBox(&rect);//Получаем прямоугольник окна
CBrush *pBrush;
pBrush = new CBrush(RGB(255,0,0));//Выбираем цвет кисти
dc.FillRect(&rect,pBrush); //Собственно заполняется прямоугольник
// Do not call CWnd::OnPaint() for painting messages
}
Здравствуйте, vitagon, Вы писали:
V>в custom control окне хочу поменять цвет background.. Какое событие отловить и как делать фон в окне?
Это вопрос не имеет отношения к ни к С ни к С++ по сему является оффтопиком в форуме С/С++. Уточните с помощью чего(инструмент, билиотека...)вы ведете разработку и после этого данная тема будет перенесена в соответствующий форум.
... << RSDN@Home 1.1.4 rev. 142 >>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, vitagon, Вы писали:
V>Зовут Виталик,
V>Помогите начинающему..
V>в custom control окне хочу поменять цвет background.. Какое событие отловить и как делать фон в окне?
V>Я теперь долго буду надоедать..
Здравствуйте, vitagon, Вы писали:
V>Зовут Виталик,
V>Помогите начинающему..
V>в custom control окне хочу поменять цвет background.. Какое событие отловить и как делать фон в окне?
правда, теперь у всех контролов, находящихся на этом окне, будет установленый тобой цвет фона (у всех оди и тот же), но при желании каждому типу контрола можно будет задать свои цвета.
Здравствуйте, eNGy, Вы писали:
NG>Здравствуйте, vitagon, Вы писали:
V>>Зовут Виталик,
V>>Помогите начинающему..
V>>в custom control окне хочу поменять цвет background.. Какое событие отловить и как делать фон в окне?
NG>сообщение WM_CTLCOLOR
NG>в .h файле объявляеш переменную NG>
NG>правда, теперь у всех контролов, находящихся на этом окне, будет установленый тобой цвет фона (у всех оди и тот же), но при желании каждому типу контрола можно будет задать свои цвета.
спасибо, брат,
и даже у кнопок и у всех других контролов? а нельзя как-нибудь на UPDATE или INVALIDATE вставить что-нибудь?
или просто брать client rectangle и рисовать bar? а если картинку хочу воткнуть как фон.. какое событие отлавливать? INVALIDATE?
Здравствуйте, vitagon, Вы писали:
V>спасибо, брат, V>и даже у кнопок и у всех других контролов? а нельзя как-нибудь на UPDATE или INVALIDATE вставить что-нибудь? V>или просто брать client rectangle и рисовать bar? а если картинку хочу воткнуть как фон.. какое событие отлавливать? INVALIDATE?
Здравствуйте, vitagon, Вы писали: V>в custom control окне хочу поменять цвет background.. Какое событие отловить и как делать фон в окне?
Если это CustomControl, то для него надо зарегестрировать класс окна
В МФЦ это Register[Wnd]Class
Вот в этой функции можно указать цвет фона... запросто
Здравствуйте, Chez, Вы писали:
C>Здравствуйте, vitagon, Вы писали: V>>в custom control окне хочу поменять цвет background.. Какое событие отловить и как делать фон в окне? C>Если это CustomControl, то для него надо зарегестрировать класс окна C>В МФЦ это Register[Wnd]Class C>Вот в этой функции можно указать цвет фона... запросто
Chez, ты про эту функцию говорил? -> AfxRegisterClass
Re[2]: Custom control
От:
Аноним
Дата:
18.08.04 07:20
Оценка:
Здравствуйте, eNGy, Вы писали:
NG>Здравствуйте, vitagon, Вы писали:
V>>Зовут Виталик,
V>>Помогите начинающему..
V>>в custom control окне хочу поменять цвет background.. Какое событие отловить и как делать фон в окне?
NG>сообщение WM_CTLCOLOR
NG>в .h файле объявляеш переменную NG>
NG>правда, теперь у всех контролов, находящихся на этом окне, будет установленый тобой цвет фона (у всех оди и тот же), но при желании каждому типу контрола можно будет задать свои цвета.
ага а окрасить кнопку в OnCtlColor не получается!!!
HBRUSH CTestDlgDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
if (CTLCOLOR_EDIT == nCtlColor)
{ pDC->SetTextColor(RGB(0,0,0)); pDC->SetBkColor(RGB(255,255,255));
return (HBRUSH)::GetStockObject(WHITE_BRUSH);
}
if (CTLCOLOR_STATIC == nCtlColor)
{ pDC->SetBkColor(RGB(255,0,255));
return (HBRUSH)::GetStockObject(GRAY_BRUSH);
}
if (CTLCOLOR_BTN == nCtlColor) //// не пашет!!!!!!!!!!!!!!!!
{ pDC->SetBkColor(RGB(0,0,255));
return (HBRUSH)::GetStockObject(WHITE_BRUSH);
}
pDC->SetBkColor(RGB(127,127,127));
return (HBRUSH)::GetStockObject(GRAY_BRUSH);
Здравствуйте, vitagon, Вы писали:
V>Chez, ты про эту функцию говорил? -> AfxRegisterClass
Да
AfxRegisterClass и AfxRegisterWndClass
можно любую использовать