![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Обработка нажатий клавиш мыши [Delphi, Windows]
Orc © (2003-09-03 07:58:00)Здавствуйте, Мастера!
Такой вопрос: как можно обработать нажатия на клавиши мыши в Direct3D-приложении? Т.е., если кнопка у меня в координатах 0,0,100,100, то я пишу
if (pos.x>=0) and (pos.y>=0) and (pos.x<=100) and (pos.y<=100) and (нажатие_на_левую_мышинную_кнопку=true) then делаем_что_то
Как сделать, чтобы это всё работало? Заранее благодарен за ответы.
pasha_676 (2003-09-04 10:05:00) [21]насчет скорости ты пожалуй зря. Насчет простоты - этточно. Но бонус инпута еще и в поддержке разнообразных девайсов. Джойстик например. Тут вопрос что делается и к чему стремиться. В простой тренировочно-отлаживательной (или в игрушке для домашнего пользования) проге вряд ли стоит городить огород на инпуте. Вообщем все зависит от целей и задач.
Sapersky (2003-09-04 09:42:00) [22]DirectInput притом, что там гораздо проще получить всё, что касается устройств ввода
Ну, это кому как... Меня лично DInput жутко раздражал при отладке, когда на каждом брейкпоинте у него устройства терялись.
к тому же работает гораздо быстрее, особенно клавиатура.
См. WinAPI GetKeyboardState. Точно такая же скорость, что и с DInput.
Orc (2003-09-04 09:12:00) [23]2MeF88: А можно примерчик? Очень уж интересно посмотреть :)
cyborg (2003-09-03 21:45:00) [24]DirectInput притом, что там гораздо проще получить всё, что касается устройств ввода, к тому же работает гораздо быстрее, особенно клавиатура.
Sapersky (2003-09-03 17:58:00) [25]Причём тут форма вообще, мышь что, от формы зависит?
Смотри DirectInput, пример приводить неохото
А причём тут DirectInput вообще, GetCursorPos не сработает, что ли? Хотя на полном экране не пробовал... Но сообщения (WM_MOUSEMOVE) точно сработают - окно-то есть.
Я к тому, что эти методы попроще будут. Сообщения немного медленнее, но для кнопок это неважно.
MeF88 (2003-09-03 15:02:00) [26]А я вообще извратился, я не только просматривал прямоугольник, но если мышь находится в прямоугольнике, то смотрел еще и прозрачность писеля в текстуре... Естественно переведя координаты мыши в координаты на текстуре с учетом вращений, масшаба и пр. Зато выглядит клево.
Orc (2003-09-03 14:26:00) [27]2cyborg: про форму я просто так сказал :) Но, тем не менее, спасибо. Буду читать the f***ing manual по DirectInput :))
cyborg (2003-09-03 13:05:00) [28]Причём тут форма вообще, мышь что, от формы зависит?
Смотри DirectInput, пример приводить неохото, раз уж Direct3D приложение делаешь, то с DirectInput сам разберёшься.
Orc (2003-09-03 12:39:00) [29]2cyborg: А подробнее, с примером можно? Всё осложняется тем, что у моего приложения нет формы как таковой - сразу создаётся окно и переводится в полноэкранный режим.
cyborg (2003-09-03 10:22:00) [30]Так и делай.
При нажатии на кнопку смотри в цикле все свои объекты (например кнопки):
if (pos.x>=0) and (pos.y>=0) and (pos.x<=100) and (pos.y<=100) then begin end;