| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Visual C++/MFC/WTL > Проблема с rebar панелью |
| Автор: Vik 21.11.2004, 09:26 | ||||
| В MFSAppW установил флажек для rebar панели после чего установил несколько кнопок и тд написал обработчики в ручжную как положено в обоаботчике написал
и во время выполнения окно с сообщением
в функции EnableWindow Как избежать этого помогите. |
| Автор: Darked 21.11.2004, 23:26 |
| Vik Приведи побольше кода. |
| Автор: Vik 22.11.2004, 07:50 |
| Darked ни понимаю какой код тебе нужно всего лиш хочу сделать кнопку не активной так же как и в диалоговом окне. |
| Автор: Darked 22.11.2004, 11:15 | ||
А может поробуешь, все -таки, нормально записать что - нибудь типа:
Посмотрим что изменится, если что - нибудь изменится |
| Автор: Vik 22.11.2004, 12:51 |
| Darked Спасибо за совет но ничего не изменилось. |
| Автор: Darked 22.11.2004, 13:29 |
| Vik Ну по сообщению, такое впечатление, что у тебя GetDlgItem не возращает указатель, посмотри в долбагере ,возращает что - нибудь. Правильно ли ты написал IDC_STARTTHREAD, видется такой ресурс? |
| Автор: Darked 22.11.2004, 14:10 |
| CButton* pBut; pBut = (CButton*) GetDlgItem(IDC_STARTTHREAD); pBut->EnableWindow(FALSE); Чего - то я тебе не то написал, забыл, что дело с ребаром имеем. |
| Автор: Vik 23.11.2004, 08:04 |
| Darked Ты прав я проверил GetDlgItem возвращает NULL хотя IDC_STARTTHREAD я написал верно. скорее всего это из за того что кнопка на ReBar панели. Может будут какие нибуть еще предложения. |
| Автор: Darked 23.11.2004, 09:52 | ||
| Vik Как я понимаю у тебя на ребаре один из бандов - тулбар, кнопку которого ты и хочешь задизаблить. Попробуй что - нибудь типа:
Насчет (TBSTATE_ENABLED, 1)- 1 или 0 нужна я не уверен. |
| Автор: Vik 23.11.2004, 10:35 | ||
| Darked ну что тебе сказать попробовал
и с (TBSTATE_ENABLED, 1)- 1 или 0 сообщений никаких не возникло но и кнопка не задизаблилась как окозалось TB_SETSTATE предназначена для ToolBarа. Так что может ктонибудь еще что нибудь предложит. |
| Автор: Guest 23.11.2004, 19:14 |
| А в топик про тулбар слабо заглянуть? DarkedА ты че подсказать не мог? |
| Автор: Coocky 23.11.2004, 19:15 |
| Блин,под гостем вошел |
| Автор: Darked 23.11.2004, 23:00 |
| Извини, Coocky, не догадался |
| Автор: Vik 24.11.2004, 11:11 | ||
Coocky Очем ты. Где читать. |
| Автор: Coocky 24.11.2004, 19:05 |
| Есть топики с названием Маленькие тайны.МФС.Есть тема "GetDlgItem()-пользуемся правильно".Есть тема "CDialogBar-достучаться до небес ".Есть тема про кнопки на тулбаре.Поищи в поисковике |
| Автор: Vik 7.12.2004, 10:37 |
| Coocky Толи поиск плохо пашит толи ты прикалываешся ? |
| Автор: alien_by 7.12.2004, 11:26 | ||
| Я так понял, тебе нужно обновлять некий контрол после определённых действий. Если так, то для этого в MFC существует стандартный механизм, основынный на сообщениях UPDATE_COMMAND_UI. Такое сообщение рассылается всем подписанным контролам, после того как пользователь (или система) произвели некоторые действия с одним из контролов (в меню или на тулбарах). Чтобы подписать контрол на данное сообщение, нужно установить обработчик на сообщение UPDATE_COMMAND_UI. Этот обработчик имеет следующий вид (мастер умеет генерить его сам).
Класс CCmdUI имеет множество методов для управления контролами, активация/пассивация, разрешение/запрещение, изменение статута и т.п. |