Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Вопросы про CStatic

311
05 февраля 2009 года
plastictown
309 / / 08.01.2006
Не думаю, что я первый, кто задает эти вопросы, на так как их у меня накопилось уже целых 2(!!!), то я решил, а почему бы их не задать в отдельной теме:)

1. Как изменить цвет CStatic'а?
Я делал свой класс myStatic, там
 
Код:
OnPaint(аргументы){
   ...
   pDC->SetTextColor(RGB(цифра, цифра, цифра));
   PDC->SetBkMode(TRANSPARENT);
   pDC->TextOut(0,0,"Текст");
   ...
}

и DDX_Control...
Но хотелось бы изменить цвет текста так, чтобы всегда таким и оставался :)

2. Как отловить MouseMove на CStatic?

Всем спасибо!
14
05 февраля 2009 года
Phodopus
3.3K / / 19.06.2008
1. WM_CTLCOLOR(STATIC) копать
2. создать потомка, перехвать OnMouseMove..
3.7K
05 февраля 2009 года
_lobster_
115 / / 10.04.2005
Цитата: plastictown

1. Как изменить цвет CStatic'а?



Следующий пример иллюстрирует, как на странице набора свойств в ответ на сообщение WM_CTLCOLOR изменяется "кисть" для закрашивания фона статических элементов управления. Для этого необходимо создать обработчик size=2>ON_WM_CTRLCOLOR. Проще всего воспользоваться мастером Class Wizard. Обработчик получает параметр, сообщающий тип элемента управления, для которого запрашиваются параметры рисования. В нашем случае задаем только другую "кисть", т. к. единственный статический элемент управления блока диалога не имеет текста, и достаточно лишь заменить цвет и стиль закрашивания фона.

Код:
BOOL
CMyPropertyPage2::OnInitDialog()
{
   size=2>CPropertyPage::OnInitDialog();
   size=2>m_brush.CreateHatchBrush(HS_CROSS, RGB(255, 255, 0));
   return TRUE;  
}
// Обработчик сообщения
WM_CTLCOLOR.
HBROSH
CMyPropertyPage2::OnCtlColor (
CDC* pDC, CWnd* pWnd, UINT
nCtlColor)
{
   // Получаем дескриптор текущей кисти страницы свойств
HBRUSH hbr =
CPropertyPage::OnCtlColor(pDC, pWnd, nCtlColor);
// Заменяем "кисть" только
для статических
// элементов
управления
  if {nCtlColor == CTLCObOR_STATIC)  
  hbr = m__brush;
  return hbr;  
}
311
06 февраля 2009 года
plastictown
309 / / 08.01.2006
Цитата: Phodopus

1. WM_CTLCOLOR(STATIC) копать


Спасибо! Все ОК!

Цитата: Phodopus

2. создать потомка, перехвать OnMouseMove..


Никак не хочет работать. Просто ничего не происходит. Я делал так же кнопку - она работала.

311
06 февраля 2009 года
plastictown
309 / / 08.01.2006
Или можно хотя бы пример использования CLinkCtrl?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог