![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
![]() Добрый вечер!
Подскажите пожалуйста как отловить одновременное нажатие правой и левой клавиши мыши? Код:
Function WindowProc(Hw: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall; begin Result:= 0; Case Msg of WM_DESTROY: begin PostQuitMessage(0); Result:= 0; Exit; end; WM_LBUTTONDOWN: MouseLdown(LOWORD(lParam),HIWORD(lParam)); WM_RBUTTONDOWN: MouseRdown(LOWORD(lParam),HIWORD(lParam)); WM_LBUTTONDOWN (And, Or) WM_RBUTTONDOWN: // Неработает Else Result:= DefWindowProc(Hw, Msg, wParam, lParam); end; end; |
#2
|
|||
|
|||
![]() Ну правильно, что так не работает, т.к. это обработка сообщений и сообщения обрабаиываются по одному за раз. Надо, при приходе сообщения о нажатии кнопочки, получать статус обоих кнопок и, если обе нажаты, делать свои действия. Это самый простой вараиант. Можно руками выставлять флаги для своей прошраммы. Т.е. при приходе сообщения о нажатии левой кнопочки мышы устанавливаем флаг MouseLeft := True; при приходе сообщения о нажатии правой кнопочки мышы устанавливаем флаг MouseRught := True. При приходе сообщения об отжатии кнопочки соответсвующий флаг сбрасывается. Ну и после установки любого из флагов выполняем проверку, что они оба выставлены...
|
#3
|
||||
|
||||
![]() Спасибо, всё получилось совсем забыл о 'флагах'.
|