Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Как изменить цвет рабочей области по щелчку мыши?  (Прочитано 12195 раз)
0 Пользователей и 1 Гость смотрят эту тему.
jazz_box
Гость
« : 19-12-2008 13:57 » 

Здравствуйте, подскажите,пожалуйста, как изменить цвет рабочей области по щелчку мыши...я примерно догадываюсь,как это сделать,но пока все мои попытки не увенчались успехом...наверно,потому что в visual c++ я полный ноль А черт его знает...
Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #1 : 19-12-2008 14:37 » 

Рабочей области чего? Своего окна?
Если да, то просто отлавливаеш шелчек мыши и перерисовываеш фон. Или воспользуешся механизмами самой винды.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
jazz_box
Гость
« Ответ #2 : 19-12-2008 15:07 » 

да,окна. отлавливаешь щелчок это
 case WM_RBUTTONDOWN:
    break;?
А как фон перерисовать? прям там не получается..
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #3 : 20-12-2008 05:51 » 

jazz_box, в WM_PAINT нужно закрасить фон окна нужным цветом, а чтобы заставить окно сделать это немедленно, вызвать последовательно

Invalidate
UpdateWindow
Записан

jazz_box
Гость
« Ответ #4 : 23-12-2008 14:30 » 

извните,конечно, за тупость..но я не понимаю,как это сделать..если я в WM_PAINT закрашиваю фон,он сразу же и закрашивается. и что бы что бы я ни делала,по щелчку мышки не перекрашвается...подскажите,пожалуйста,что еще в case WM_BUTTONDOWN надо прописать?
Записан
Вад
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #5 : 23-12-2008 14:32 » 

jazz_box, правильно, в WM_PAINT нужно закрашивать тем фоном, который установлен. А устанавливать (изменять) цвет - по WM_BUTTONDOWN или WM_CLICK, после чего генерировать WM_PAINT указанным выше способом.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #6 : 23-12-2008 15:50 » 

сорри, я торопился ) Детальнее:


Код:
//COLORREF m_CurrentColor; - это член переменная нашего диалога

<обработчик WM_BUTTONDOWN>
{
  //задать новый текущий цвет
  m_CurrentColor=GRB(...,...,...);

  //перерисовать окно

  //помечаем весь диалог невалидным
  Invalidate(1);//1 - не стираем предыдущее изображение , 0 - стираем

  //непосредственно в оконную процедуру шлём WM_PAINT
  UpdateWindow();
}

<обработчик WM_PAINT>
{
   ...

   dc.FillSolidRect(...,m_CurrentColor);
}


Записан

Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines