Не работают командные сообщения от нажатия клавиш
От: Schulz  
Дата: 30.11.01 06:57
Оценка:
У CPropertySheet 3 страницы (CPropertyPage). На каждой свой набор контролов.
У каждого страницы свой свой обработчик команды (допустим ID_PL_DELETE).
Этот же обработчик есть и у CMainFrame. Если посылать эту команду через контекстное меню, то все замечательно: все страницы удачно её ловять. Но если посылать команду через горячую клавишу, то её не ловит ни одна страница. Но CMainFrame ловит эту команду когда когда на нем установлен фокус.
Re: Не работают командные сообщения от нажатия клавиш
От: KaSA  
Дата: 30.11.01 07:44
Оценка:
Здравствуйте Schulz, Вы писали:

S>У CPropertySheet 3 страницы (CPropertyPage). На каждой свой набор контролов.

S>У каждого страницы свой свой обработчик команды (допустим ID_PL_DELETE).
S>Этот же обработчик есть и у CMainFrame. Если посылать эту команду через контекстное меню, то все замечательно: все страницы удачно её ловять. Но если посылать команду через горячую клавишу, то её не ловит ни одна страница. Но CMainFrame ловит эту команду когда когда на нем установлен фокус.

А ты в PreTranslateMessage CProperySheet (или надо в каждой CProprtyPage, не помню)
делай ::LoadAccelerators(...)
Должно сработать.
Re[2]: Не работают командные сообщения от нажатия клавиш
От: Hollander Беларусь http://blogs.rsdn.org/ikemefula
Дата: 30.11.01 08:00
Оценка:
Здравствуйте KaSA, Вы писали:

S>>Этот же обработчик есть и у CMainFrame. Если посылать эту команду через контекстное меню, то все замечательно: все страницы удачно её ловять. Но если посылать команду через горячую клавишу, то её не ловит ни одна страница. Но CMainFrame ловит эту команду когда когда на нем установлен фокус.


KSA>А ты в PreTranslateMessage CProperySheet (или надо в каждой CProprtyPage, не помню)

KSA>делай ::LoadAccelerators(...)

В PreTranslateMessage надо вызвать TranslateAccelerator. А LoadAccelerators в OnInitDialog
Re[3]: Не работают командные сообщения от нажатия клавиш
От: KaSA  
Дата: 30.11.01 08:40
Оценка:
Здравствуйте Hollander, Вы писали:


H>В PreTranslateMessage надо вызвать TranslateAccelerator. А LoadAccelerators в OnInitDialog


Что верно, то верно Попутал маленько...
Re[4]: Не работают командные сообщения от нажатия клавиш
От: Schulz  
Дата: 30.11.01 11:08
Оценка:
Большое Спасибо. Все работает.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.