Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Перекрашивание кнопки


Автор: Kikos 24.11.2008, 00:55
Делаю проверку на нажатие виртуальной клавиши и, если нажата определенная клавиша, то надо перекрашивать кнопку в определенный цвет.
Проект делаю в VS 2005 MFC App > Dialog Based.

Код

int  SecondDlg::main()
{
while (true)
{
SHORT res = GetKeyState(0x41); 
if (res & 0x80)
{
 // ВОТ ТУТ НАДО ПИСАТЬ ОБРАБОТЧИК ПЕРЕКРАШИВАНИЯ КНОПКИ
}
}

return 0;
}


Пожалуйста, напишите пример перекрашивания кнопки!!

Автор: Earnest 24.11.2008, 09:49
Цитата(Kikos @  24.11.2008,  01:55 Найти цитируемый пост)
// ВОТ ТУТ НАДО ПИСАТЬ ОБРАБОТЧИК ПЕРЕКРАШИВАНИЯ КНОПКИ

Ничего подобного. И вообще, что это за синтаксис такой, SecondDlg::main ?

В MFC все делается не так. Тебе нужно: 
1) переопределить класс кнопки и написать свой обрабочик OnPaint (или OnEraseBakgnd может хватить) 
2) в этом обработчике проверять состояние клавиши и выбирать соответствующий цвет фона 
3) в диалоге (лучше всего в PreTranslateMessage) на событие-нажатие клавиши делать кнопке Invalidate

Но начать, похоже, нужно с какой-нибудь книжки про  first steps по MFC.

Автор: Kikos 24.11.2008, 13:49
Блин.. Я совсем недавно начал изучать С++... А лабу сдавать надо через 2 дня
Нет у вас возможности скинуть переопределенный класс кнопки? Или файлик с проектом..?
Буду очень вам благодарен

Автор: voov 24.11.2008, 14:16
Прочитай вот http://forum.vingrad.ru/forum/topic-99226.html и сделай аналогично. Работы там не много да и будешь понимать, что делаешь.

Добавлено через 57 секунд
там и проект присоединенный есть

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