IPB
ЛогинПароль:

> Программирование мыши, Fpc
Bokul
сообщение 4.01.2007 21:24
Сообщение #1


Гуру
*****

Группа: Пользователи
Сообщений: 1 117
Пол: Мужской
Реальное имя: Богдан

Репутация: -  11  +


А как обрабатывать нестандартную мышь (больше двух кнопок)? У меня, например, есть 5 кнопок + колесико, которое можно крутить и нажимать тремя разными способами, как использовать все возможности?


--------------------
Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 11)
Bokul
сообщение 7.01.2007 20:38
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 117
Пол: Мужской
Реальное имя: Богдан

Репутация: -  11  +


Нашел smile.gif . Копать надо в сторону WM_APPCOMMAND message и XBUTTONs
Хотя это сообщение тоже не поддерживается в Fpc sad.gif

Сообщение отредактировано: Bokul - 7.01.2007 20:43


--------------------
Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 7.01.2007 20:53
Сообщение #3


Гость






Покажи, КАК ты его обрабатываешь...
 К началу страницы 
+ Ответить 
Bokul
сообщение 7.01.2007 21:04
Сообщение #4


Гуру
*****

Группа: Пользователи
Сообщений: 1 117
Пол: Мужской
Реальное имя: Богдан

Репутация: -  11  +


Ну как обычно - добавляю WM_APPCOMMAND в callback функцию класса, а потом, в соответствии с lParam параметром сообщения, делаю нужное для меня действие. А что?

P.S. Это план, код я не писал..

Сообщение отредактировано: Bokul - 7.01.2007 21:07


--------------------
Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 7.01.2007 21:13
Сообщение #5


Гость






В чем проблема? Не знаем кодов сообщений? smile.gif

const
 WM_XBUTTONDOWN  = $020B;
 WM_XBUTTONUP    = $020C;
 WM_XBUTTONDBLCLK= $020D;
 MOUSE_XBUTTON1  = $0001;
 MOUSE_XBUTTON2  = $0002;
blum.gif
 К началу страницы 
+ Ответить 
Bokul
сообщение 7.01.2007 21:22
Сообщение #6


Гуру
*****

Группа: Пользователи
Сообщений: 1 117
Пол: Мужской
Реальное имя: Богдан

Репутация: -  11  +


А для WM_APPCOMMAND и его параметра lParam? rolleyes.gif

P.S. Может создать отдельную тему, посвящённую константам WinApi?


--------------------
Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 7.01.2007 21:33
Сообщение #7


Гость






const
  WM_APPCOMMAND                  = $0319;

  APPCMD_FIRST = $8000;
  APPCOMMAND_BROWSER_BACKWARD       = APPCMD_FIRST +1;
  APPCOMMAND_BROWSER_FORWARD        = APPCMD_FIRST +2;
  APPCOMMAND_BROWSER_REFRESH        = APPCMD_FIRST +3;
  APPCOMMAND_BROWSER_STOP           = APPCMD_FIRST +4;
  APPCOMMAND_BROWSER_SEARCH         = APPCMD_FIRST +5;
  APPCOMMAND_BROWSER_FAVORITES      = APPCMD_FIRST +6;
  APPCOMMAND_BROWSER_HOME           = APPCMD_FIRST +7;
  APPCOMMAND_VOLUME_MUTE            = APPCMD_FIRST +8;
  APPCOMMAND_VOLUME_DOWN            = APPCMD_FIRST +9;
  APPCOMMAND_VOLUME_UP              = APPCMD_FIRST +10;
  APPCOMMAND_MEDIA_NEXTTRACK        = APPCMD_FIRST +11;
  APPCOMMAND_MEDIA_PREVIOUSTRACK    = APPCMD_FIRST +12;
  APPCOMMAND_MEDIA_STOP             = APPCMD_FIRST +13;
  APPCOMMAND_MEDIA_PLAY_PAUSE       = APPCMD_FIRST +14;
  APPCOMMAND_LAUNCH_MAIL            = APPCMD_FIRST +15;
  APPCOMMAND_LAUNCH_MEDIA_SELECT    = APPCMD_FIRST +16;
  APPCOMMAND_LAUNCH_APP1            = APPCMD_FIRST +17;
  APPCOMMAND_LAUNCH_APP2            = APPCMD_FIRST +18;
  APPCOMMAND_BASS_DOWN              = APPCMD_FIRST +19;
  APPCOMMAND_BASS_BOOST             = APPCMD_FIRST +20;
  APPCOMMAND_BASS_UP                = APPCMD_FIRST +21;
  APPCOMMAND_TREBLE_DOWN            = APPCMD_FIRST +22;
  APPCOMMAND_TREBLE_UP              = APPCMD_FIRST +23;
  APPCOMMAND_MICROPHONE_VOLUME_MUTE = APPCMD_FIRST +24;
  APPCOMMAND_MICROPHONE_VOLUME_DOWN = APPCMD_FIRST +25;
  APPCOMMAND_MICROPHONE_VOLUME_UP   = APPCMD_FIRST +26;
  APPCOMMAND_HELP                   = APPCMD_FIRST +27;
  APPCOMMAND_FIND                   = APPCMD_FIRST +28;
  APPCOMMAND_NEW                    = APPCMD_FIRST +29;
  APPCOMMAND_OPEN                   = APPCMD_FIRST +30;
  APPCOMMAND_CLOSE                  = APPCMD_FIRST +31;
  APPCOMMAND_SAVE                   = APPCMD_FIRST +32;
  APPCOMMAND_PRINT                  = APPCMD_FIRST +33;
  APPCOMMAND_UNDO                   = APPCMD_FIRST +34;
  APPCOMMAND_REDO                   = APPCMD_FIRST +35;
  APPCOMMAND_COPY                   = APPCMD_FIRST +36;
  APPCOMMAND_CUT                    = APPCMD_FIRST +37;
  APPCOMMAND_PASTE                  = APPCMD_FIRST +38;
  APPCOMMAND_REPLY_TO_MAIL          = APPCMD_FIRST +39;
  APPCOMMAND_FORWARD_MAIL           = APPCMD_FIRST +40;
  APPCOMMAND_SEND_MAIL              = APPCMD_FIRST +41;
  APPCOMMAND_SPELL_CHECK            = APPCMD_FIRST +42;
  APPCOMMAND_DICTATE_OR_COMMAND_CONTROL_TOGGLE    = APPCMD_FIRST +43;
  APPCOMMAND_MIC_ON_OFF_TOGGLE      = APPCMD_FIRST +44;
  APPCOMMAND_CORRECTION_LIST        = APPCMD_FIRST +45;
  APPCOMMAND_MEDIA_PLAY             = APPCMD_FIRST +46;
  APPCOMMAND_MEDIA_PAUSE            = APPCMD_FIRST +47;
  APPCOMMAND_MEDIA_RECORD           = APPCMD_FIRST +48;
  APPCOMMAND_MEDIA_FAST_FORWARD     = APPCMD_FIRST +49;
  APPCOMMAND_MEDIA_REWIND           = APPCMD_FIRST +50;
  APPCOMMAND_MEDIA_CHANNEL_UP       = APPCMD_FIRST +51;
  APPCOMMAND_MEDIA_CHANNEL_DOWN     = APPCMD_FIRST +52;
Хватит, или еще чего-то нету?

Да, вот этого не было:
MK_LBUTTON  = $0001;
MK_RBUTTON  = $0002;
MK_SHIFT    = $0004;
MK_CONTROL  = $0008;
MK_MBUTTON  = $0010;
MK_XBUTTON1 = $0020;
MK_XBUTTON2 = $0040;
 К началу страницы 
+ Ответить 
Bokul
сообщение 7.01.2007 21:46
Сообщение #8


Гуру
*****

Группа: Пользователи
Сообщений: 1 117
Пол: Мужской
Реальное имя: Богдан

Репутация: -  11  +


Спасибо!!! good.gif
Вот также нашел некоторые константы Сообщения WM_XXX, но не все.. sad.gif


--------------------
Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
hardcase
сообщение 14.01.2007 20:24
Сообщение #9


code warrior
****

Группа: Пользователи
Сообщений: 484
Пол: Мужской
Реальное имя: Славен

Репутация: -  8  +


А ещё есть DirectInput.....
Я через него свой джойстик обрабатывал....


--------------------
ИзВ ин ИтЕ зА нЕ рОв НЫй П оч ЕРк
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Bokul
сообщение 14.01.2007 20:25
Сообщение #10


Гуру
*****

Группа: Пользователи
Сообщений: 1 117
Пол: Мужской
Реальное имя: Богдан

Репутация: -  11  +


Это как? На уровне драйвера?


--------------------
Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
hardcase
сообщение 15.01.2007 23:04
Сообщение #11


code warrior
****

Группа: Пользователи
Сообщений: 484
Пол: Мужской
Реальное имя: Славен

Репутация: -  8  +


Нет, это часть библиотеки DirectX, есть ещё Direct3D, DirectDraw и другие.

Это естественно, объектно-ориентированная библиотека.
Общий принцип работы с устройствами ввода (клавиатурами, джойстиками, джойпадами, мышами) там сводится к периодическому их опросу, нет встроенной событийной модели.

В сети есть порт С++ заголовков на Delphi (и соответственно совместимых с FPC), правда я его не встречал - не приходилось работать с Direct'ом на Делфи.

Сообщение отредактировано: hardcase - 15.01.2007 23:05


--------------------
ИзВ ин ИтЕ зА нЕ рОв НЫй П оч ЕРк
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 15.01.2007 23:13
Сообщение #12


Гость






Цитата
В сети есть порт С++ заголовков на Delphi
Не только... На FPC тоже портировали... Не все из Дельфей было совместимо с FPC...

Здесь ...
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия 27.07.2025 23:50
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"