Я занимаюсь разработкой приложения, ориентированного на устройство POCKET PC 2003 (Windows CE 4.2), использующее C ++ и собственный WINAPI (т.е. без MFC и т. П.). В нем у меня есть однострочный элемент управления для редактирования, какая часть главного окна ( не диалоговое окно); следовательно, нормальное поведение Windows при нажатии ENTER - ничего не делать, кроме звукового сигнала.
Я разделил процедуру окна на элемент управления редактирования, чтобы переопределить поведение по умолчанию, используя следующий код:
LRESULT CALLBACK Gui::ItemIdInputProc( HWND hwnd, UINT message, WPARAM wParam,
LPARAM lParam ) {
switch ( message ) {
case WM_KEYDOWN :
switch ( wParam ) {
case VK_RETURN :
addNewItem();
return 0;
}
}
return CallWindowProc( oldItemIdInputProc_, hwnd, message, wParam, lParam );
}
Это вызывает аналогичное поведение при нажатии кнопки «ОК».
Теперь к проблеме: эта оконная процедура не отменяет стандартное поведение при подаче звукового сигнала. Я подозреваю, что должно быть какое-то другое сообщение или сообщения, которые срабатывают при нажатии ENTER, которые мне не удается перехватить; Я просто не могу понять, какой. Я действительно хочу, чтобы устройство не издавало звуковых сигналов, поскольку оно портит другие звуки, которые воспроизводятся при определенных обстоятельствах при столкновении предметов, и крайне важно, чтобы пользователь был предупрежден об этом.
Заранее спасибо.