Как обработать нажатие на "стрелки"?
Мне удалось выяснить следующее:
1.WM_KEWDOWN и WM_CHAR при нажати на стрелки не посылаются.
2. ON_WM_GETDLGCODE реагирует на нажатие на стрелки, но только в том случае, если в окне отсутствуют какие-либо CONTROL-ы. А у меня в окне есть статические элементы. Так что это тоже не работает.
Что же делать?
Буду признателен за помощь.
Спасибо.
Цитата:
Originally posted by Toyo
Есть утилитка на основе диалогового окна. Подскажите, плз, как обработать нажатие на стрелки "вверх", "вниз", "вправо", "влево" ?
Мне удалось выяснить следующее:
1.WM_KEWDOWN и WM_CHAR при нажати на стрелки не посылаются.
2. ON_WM_GETDLGCODE реагирует на нажатие на стрелки, но только в том случае, если в окне отсутствуют какие-либо CONTROL-ы. А у меня в окне есть статические элементы. Так что это тоже не работает.
Что же делать?
Буду признателен за помощь.
Спасибо.
Есть утилитка на основе диалогового окна. Подскажите, плз, как обработать нажатие на стрелки "вверх", "вниз", "вправо", "влево" ?
Мне удалось выяснить следующее:
1.WM_KEWDOWN и WM_CHAR при нажати на стрелки не посылаются.
2. ON_WM_GETDLGCODE реагирует на нажатие на стрелки, но только в том случае, если в окне отсутствуют какие-либо CONTROL-ы. А у меня в окне есть статические элементы. Так что это тоже не работает.
Что же делать?
Буду признателен за помощь.
Спасибо.
Ну, в крайнем случае можешь используя SetWindowsHookEx поставить хук на события клавиатуры:
hHook = SetWindowsHookEx(WH_KEYBOARD, KeybrdProc, NULL, GetCurrentThreadId());
LRESULT CALLBACK KeybrdProc(int code, WPARAM wParam, LPARAM lParam)
{
...
}
PreTranslateMessage.
(Если и нет - хуки, пожалуй, жирновато будет...:))
Цитата:
Originally posted by craftyfox
Если у тебя MFC-app, то достачно перегрузить
PreTranslateMessage.
(Если и нет - хуки, пожалуй, жирновато будет...:))
Если у тебя MFC-app, то достачно перегрузить
PreTranslateMessage.
(Если и нет - хуки, пожалуй, жирновато будет...:))
У меня MFC. Расскажи, плз поподробнее о PreTranslateMessage.
Цитата:
Originally posted by Toyo
У меня MFC. Расскажи, плз поподробнее о PreTranslateMessage.
У меня MFC. Расскажи, плз поподробнее о PreTranslateMessage.
BOOL CYourDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if(pMsg->message==WM_KEYDOWN)
{
//Do what you want
}
return CDialog::PreTranslateMessage(pMsg);
//or other :)
}
че там рассказывать-то?
см MSDN
Цитата:
Originally posted by craftyfox
че там рассказывать-то?
че там рассказывать-то?
Да, действительно все просто.
Спасибо.