![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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
|
||||
|
||||
|
Спасибо, всё получилось совсем забыл о 'флагах'.
|