Меню
От: Tahk  
Дата: 13.12.04 16:17
Оценка:
У меня стандартное SDI приложение, создаю класс унаследованный от CView, и в нём описываю методы для обработки комманд меню (использую Class Wizard). Проблема: пункты меню неактивны, причём если делать тоже самое в сгенерированном классе С...View, то всё нормально.
Re: Меню
От: IvanD  
Дата: 13.12.04 16:47
Оценка:
Здравствуйте, Tahk, Вы писали:

T>У меня стандартное SDI приложение, создаю класс унаследованный от CView, и в нём описываю методы для обработки комманд меню (использую Class Wizard). Проблема: пункты меню неактивны, причём если делать тоже самое в сгенерированном классе С...View, то всё нормально.


А ты не забыл добавить соответствующие макросы в очередь сообщений? (BEGIN_MESSAGE_MAP ... END_MESSAGE_MAP)
Re[2]: Меню
От: Tahk  
Дата: 13.12.04 17:09
Оценка:
Здравствуйте, IvanD, Вы писали:

ID>А ты не забыл добавить соответствующие макросы в очередь сообщений? (BEGIN_MESSAGE_MAP ... END_MESSAGE_MAP)


Я сгенерировал метод ClassWizard. Так что всё есть.
Re[3]: Меню
От: rus blood Россия  
Дата: 13.12.04 18:32
Оценка:
Здравствуйте, Tahk, Вы писали:

T>Я сгенерировал метод ClassWizard. Так что всё есть.


Читать статью
Автор(ы): Поль ДиЛашиа (Paul DiLascia)

В статье даётся исчерпывающее описание механизмов маршрутизации сообщений и команд в MFC. Автор прослеживает путь сообщения с момента получения и до попадания в соответствующий обработчик, объясняет механизм работы карт сообщений, обработку команд и уведомлений, а также обновление объектов пользовательского интерфейса при помощи сообщений CN_UPDATE_COMMAND_UI. Прочитав статью, вы сможете решить практически любую проблему, связанную с обработкой сообщений в MFC.
.

Внимательно смотреть в рисунок №8 и текст после него...

Это объясняет одну из загадок, упомянутых в начале: почему иногда при добавлении дочернего окна пункты меню остаются серыми, даже если в карту сообщений этого окна вставлены макросы ON_COMMAND? Ответ: потому что команды в дочернее окно автоматически не направляются. Они направляются только в активное представление, документ, главное окно и приложение. Если вы хотите, чтобы произвольное дочернее окно CGizmoWnd тоже обрабатывало команды, вы должны направить их туда вручную. Не бойтесь, это просто.

Имею скафандр — готов путешествовать!
Re[4]: Меню
От: Tahk  
Дата: 13.12.04 18:44
Оценка:
RB>Читать статью
Автор(ы): Поль ДиЛашиа (Paul DiLascia)

В статье даётся исчерпывающее описание механизмов маршрутизации сообщений и команд в MFC. Автор прослеживает путь сообщения с момента получения и до попадания в соответствующий обработчик, объясняет механизм работы карт сообщений, обработку команд и уведомлений, а также обновление объектов пользовательского интерфейса при помощи сообщений CN_UPDATE_COMMAND_UI. Прочитав статью, вы сможете решить практически любую проблему, связанную с обработкой сообщений в MFC.
.


RB>Внимательно смотреть в рисунок №8 и текст после него...


Спасибо, уже читаю!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.