Привет други,
хочется сделать контрол, который-бы представлял из себя ТулБар и все свои-же сообщения обрабатывал сам —
тем самым не утомляя родителя всякими левыми(low-level с точки зрения сообщениями);
в том числе ТулБар должен хватать и WM_COMMAND от нажатия кнопок!!!! ибо с точки зрения архитектуры будет правильно сделать так:
class IToolBarHandler {
virtual void OnHanflerA() = 0;
virtual void OnHanflerB() = 0;
};
COwnToolBar : public CToolBar {
virtual void OnHanflerA(){ make something }
virtual void OnHanflerB(){ make something }
DECLARE_MESSAGE_MAP()
afx_msg void OnTBHanflerA();
afx_msg void OnTBHanflerB();
};
void OnTBHanflerA() {
IToolBarHandler::OnHanflerA();
}
void OnTBHanflerB() {
IToolBarHandler::OnHanflerB();
}
то есть ТулБар отвечает только за основу GUI, а логика будер реализована в IToolBarHandler;
(на самом деле такой подход вытекает из много-платформенности)
для того, что-бы хватать WM_COMMAND от себя есть такой макрос:
ON_CONTROL_REFLECT, но..........
Студия(7.1) кнопки в ТулБаре отображает как Grayed(Disabled) — на них нажать нельзя ибо в родителе ТулБара не определыоработчики этих кнопок !!!!!!! — бред???????? я ведь не ходу, чтобы родитель обрабатывал
low-level сообщения от ТулБара — вместо этого я использую ON_CONTROL_REFLECT в самом контоле, но кнопки при этом
остаются Grayed.
внимание вопрос:
1. подскажите как все-таки сделать кнопки на тулбаре активными???????
2. как студия используя карту сообщений делает Grayed кнопки ТулБара и Меню??????????? —
вот это для меня загадка!!!!
Thanks...