Я новичок в WTL.WTL: для обработки определенных команд в некоторых обработчиках команд
Одним из классов проекта, над которым я работаю, является класс WTL GUI. Его сообщение Карта содержит запись:
COMMAND_CODE_HANDLER(0, OnMenuClick)
OnMenuClick
обрабатывает все WM_COMMAND
«s отправляемых после меню щелчка мыши. Есть ли способ установить другие обработчики команд для некоторых определенных сообщений, а OnMenuClick
обрабатывает все остальные?
Я попытался это:
COMMAND_ID_HANDLER(ID_START_TASK, OnStartTask);
COMMAND_CODE_HANDLER(0, OnMenuClick)
Он работает, OnStartTask
процессы ID_START_TASK
команд, но это зависит от того, декларации. Если я изменяю порядок объявления строк, OnMenuClick
обрабатывает команды ID_START_TASK
.
Я использую VS 2008 + WTL 8,0
Насколько я знаю, '' bHandled'' установлен в '' true'' по умолчанию. Итак, единственное, что мне нужно сделать, это установить его в '' false'' в '' OnMenuClick'' в случае команды '' ID_START_TASK'', верно? – fogbit
Да. Вероятно, это хорошая идея, чтобы привычка не устанавливать его в FALSE и устанавливать только значение TRUE, если вам нужно убедиться, что никакой другой обработчик не обработает его. – pezcode