| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Изменение состояния кнопок в ToolBar_e |
| Автор: Coocky 19.8.2004, 23:34 |
| Не могу поменять состояние кнопок.(CToolBarCtrl())....Изменяется нормально только CheckButton().А кнопка стает активной,только когда Добавляешь обработчик COMMAND(нажатие).(при появлении окна она неактивна...)Короче...(CToolBarCtrl()).Enable(....) не отрабатывает ни FALSE,ни TRUE...Почему?Может есть другой способ?(Заполнение струтуры кнопки не предлагать!). |
| Автор: Coocky 20.8.2004, 16:41 |
| Прочитал,что каждой кнопке должен соответствовать пункт меню.Не помогает...Приложение SDI... |
| Автор: Coocky 20.8.2004, 16:51 |
| Неужели у всех все получается |
| Автор: AndyY 20.8.2004, 17:03 |
| все это потому что mfc написана через задницу. 1. окно класса CToolbarCtrl не обновляется через механизм обработчиков UpdateCmdUI тебе нужно делать обычный CToolbar, а у него есть метод получения СToolbarCrtrl 2. Нужно создать обработчик команды и состояния: (в мессадж мапе ON_COMMAND(ID_GROUP, OnGroup) ON_UPDATE_COMMAND_UI(ID_GROUP, OnUpdateGroup) (в классе) void CMyClass::OnCommand() { AfxMessageBox( "It's work!"); } void CMyClass::OnUpdateCmdUI(CCmdUI*pCmdUI ) { pCmdUI->Endble( чтобы включить или выключить); pCmdUI->SetCheck( чтобы поставить или снять чек); } в меню или в толбаре кнопка-команда - пофигу. обработчик OnUpdate* должен исполняться достаточно быстро, поскольку вызывается в цикле сообщений между обычными сообщениями. |
| Автор: Nastya 20.8.2004, 17:04 |
| Я как-то в этом форуме спрашивала про ДиалогБарыи инеактивность кнопок, если у них нет обработчика. Так вот, мне посоветовали (работатет) у MainFrame перехватитьт ON_COMMAND_UPDATE (для кнопки) или ON_COMMAND_UPDATE_RANGE (для группы кнопак). И для параметра, который этот обработчик полычает, тип его я сейчас на вспомню Я правильно поняла проблему? Добавлено @ 17:06 Вот опять ответили одновременно |
| Автор: Coocky 31.8.2004, 13:00 | ||
Да я уже разобрался.Только вот проблема:pCmdUI указатель на нажатую кнопку А как сделать,что б другая кнопка стала,например,активной |