Форум программистов CodeGuru
23 Апрель 2018, 21:33:41 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
Новости:
 
   Начало   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Опять pushbutton  (Прочитано 16721 раз)
0 Пользователей и 1 Гость смотрят эту тему.
POMAH
Интересующийся
**
Офлайн Офлайн

Сообщений: 15


Просмотр профиля
« : 12 Октябрь 2006, 11:11:33 »

Win32. У диалогового окна есть две кнопки(первая - Enable, вторая - Disable). При нажатии на первую она становится Disable, а вторая - Enable(при помощи EnableWindow).  Затем устанавливаю фокус на кнопку со статусом Enable(при помощи SetFocus).  Подскажите как мне задать одно из следующих состояний кнопки:
enum PUSHBUTTONSTATES {
   PBS_NORMAL = 1,
   PBS_HOT = 2,
   PBS_PRESSED = 3,
   PBS_DISABLED = 4,
   PBS_DEFAULTED = 5,
   PBS_STYLUSHOT = 6,
} ???
Насколько понимаю через сообщение BM_SETIMAGE, но как им воспользоваться не очень ясно. Подскажите пожалуйста
Записан
CatWarrior
Пользователь
***
Офлайн Офлайн

Сообщений: 44


Просмотр профиля WWW
« Ответ #1 : 13 Октябрь 2006, 10:41:35 »

Из MSDN как я понял состояние у кнопки одно: нажата или не нажата.
Чтобы выглядела как нажатая я сделал так:
Код:

//IDC_BUTTON5 - id нужной кнопки
CButton* wnd=(CButton*)GetDlgItem(IDC_BUTTON5);
::SendMessage(wnd->m_hWnd,BM_SETSTATE,TRUE ,0);


Чтоб менять стили кнопки на лету пойдет это:
::SendMessage(wnd->m_hWnd,BM_SETSTYLE,  /*какойнить стиль*/  ,TRUE);

А BM_SETIMAGE это просто ассоциирование картинки на кнопке с самой кнопкой. Если захочется рисовать сами элементы управления то лучше подойдет DrawFrameControl Улыбка
« Последнее редактирование: 13 Октябрь 2006, 10:44:39 от catwarrior » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines Valid XHTML 1.0! Valid CSS!