На большинстве телефонов Back и Backspace - это разные кнопки. Если не ошибаюсь, то Back это VK_BROWSER_BACK, а Backspace это VK_BACK - то есть удаление символа слева от каретки. Но есть телефоны где Back и Backspace это одна и та же кнопка. И вот тут возникла следующая проблема. Я создаю HTML Control, и загружаю на него страницу на которой есть поле для ввода текста (<input type="text" />). Так вот, при редактировании его содержимого, эта кнопка у меня срабатывает как Browser Back, в то время как во всех остальных приложениях - как backspace. Очень не хочется писать хукер клавы из-за этого случая. Есть ли какие-то идеи, в чем может быть дело и как это поченить?
Готово. После создания меню, ее надо попросить не хендлить кнопку Back: Код (Text): SHMENUBARINFO menubar_info = {0}; menubar_info.cbSize = sizeof(menubar_info); menubar_info.hwndParent = wnd; menubar_info.dwFlags = SHCMBF_HMENU; menubar_info.nToolBarId = index; menubar_info.hInstRes = GetModuleHandle(0); SHCreateMenuBar(&menubar_info); LPARAM lparam = MAKELPARAM(SHMBOF_NODEFAULT | SHMBOF_NOTIFY, SHMBOF_NODEFAULT | SHMBOF_NOTIFY); SendMessage(menubar_info.hwndMB, SHCMBM_OVERRIDEKEY, VK_TBACK, lparam); // Вот После этого вместо хендлинга мы будем получать WM_NOTIFY. Чтобы Back работала как Backspace надо в диалоговом окне добавить обработчик WM_NOTIFY: Код (Text): switch(msg) { case WM_HOTKEY: { if(HIWORD(lparam) == VK_TBACK) { SHSendBackToFocusWindow(msg, wparam, lparam); } } break; PS. Пора сделать ветку WASM.MOBILE