![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
||||
|
||||
|
Доброго времени суток.
приложение полностью на winapi, Имею пустую форму, которая создается из ресурсов через DialogBox. обработка нажатий клавиш происходит в отдельном потоке через GetKeyState. Получается такая ситуация, нажатия обрабатываются корректно, но когда нажимаешь несколько кнопок сразу или нажимаешь что-то отличное от стрелок, происходит звук типа неверно нажатой клавиши. вопрос : как отключить "стандартный" обработчик нажатий, чтоб не "пикало" при нажатиях? |
|
#2
|
||||
|
||||
|
Например, зарегистрировать свою WndProc и по нажатию кнопок не вызывать стандартный обработчик, а просто выходить?
|
|
#3
|
||||
|
||||
|
wndproc есть,
типа отлавливать сообщеньки wm_keydown, keyup , keypress и повесить на них тупо exit. или вообще из wndproc выкинуть в конце defaultwndproc ... попробую. |
|
#4
|
||||
|
||||
|
DefWindowProc вызывать по событиям клавы не нужно - это стандартный обработчик. Но если просто выкинуть, то отвалятся вообще все сообщения.
|
|
#5
|
||||
|
||||
|
Цитата:
Код:
function MainDlgFunc(hWnd : LongWord; uMsg : LongWord; wParam, lParam : Integer) : LongBOOL; stdcall;
begin
Result := TRUE;
case uMsg of
$0110 : begin
GetFullScreen(32);
resize(hwnd);
GamesThread := TGameThread.Create(hWnd); // WM_INITDIALOG:
end;
$0002, // WM_DESTROY
$0010 : FreeAll; // WM_CLOSE
$0111: case wParam of // WM_COMMAND
101: FreeAll;
end;
else
Result := FALSE;
end;
end;
begin
DialogBox(hInstance, PChar(RC_FORM), 0, @MainDlgFunc);
end.Даже дефолтный не вызываю,.. при этом всё работает, но все-равно пикает. Последний раз редактировалось SCrat.ORS, 27.04.2017 в 11:58. |
|
#6
|
||||
|
||||
|
А, так это не просто окно, это DialogBox. Не заметил сразу.
Цитата:
Цитата:
Последний раз редактировалось Bargest, 27.04.2017 в 16:03. |
|
#7
|
||||
|
||||
|
Если просто вернуть ТРУ, то да, обработчик не вызывается, но она один фиг пикает.
ЗЫ. Я перерыл в обработчике вообще все сообщения, и нет ниодного, которое бы срабатывало при нажатии клавиши. Похоже сабака порылась где-то совершенно в другом месте. Последний раз редактировалось SCrat.ORS, 28.04.2017 в 14:37. |