|
|
|
Как добраться до координат указателя мыши в DOS?
|
|||
|---|---|---|---|
|
#18+
Многоуважаемый ALL прошу совета как добраться до координат указателя мыши в DOS через драйвер! В общем проблема состоит в лабе – надо сделать программулину на С++ чтобы она создавала прямоугольник по точкам на экране, отмечаемым по щелчку левой кнопки мыши. Большинство моих сокурсников сделало банальный цикл в main который постоянно опрашивает процессор по прерыванию int33h и забирает данные регистров после щелчка мыши. Но вот мне охота сделать по-нормальному - через драйвер мыши ( раз уж он есть). В общем с черчением прямоугольника по координатам я разобрался, а вот с щелчком мыши и координатами указателя мыши происходит настоящая беда. Прочитав учебник по ASM’у и хорошенько погуглив у меня получилось забирать координаты указателя мыши в самой процедуре которая срабатывает после того как драйвер мыши реагирует на событие нажатия кнопки. Но вот вернуть эти самые координаты в Main или какую либо другую процедуру у меня не получается… 8-( Уважаемые знатоки! Подскажите плз как это сделать или укажите почему это сделать невозможно… Среда разработки Borland 3.1 Исходный код: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2007, 12:34 |
|
||
|
Как добраться до координат указателя мыши в DOS?
|
|||
|---|---|---|---|
|
#18+
PiterskiyМногоуважаемый ALL прошу совета как добраться до координат указателя мыши в DOS через драйвер! В общем проблема состоит в лабе – надо сделать программулину на С++ чтобы она создавала прямоугольник по точкам на экране, отмечаемым по щелчку левой кнопки мыши. Большинство моих сокурсников сделало банальный цикл в main который постоянно опрашивает процессор по прерыванию int33h и забирает данные регистров после щелчка мыши. Но вот мне охота сделать по-нормальному - через драйвер мыши ( раз уж он есть). В общем с черчением прямоугольника по координатам я разобрался, а вот с щелчком мыши и координатами указателя мыши происходит настоящая беда. Прочитав учебник по ASM’у и хорошенько погуглив у меня получилось забирать координаты указателя мыши в самой процедуре которая срабатывает после того как драйвер мыши реагирует на событие нажатия кнопки. Но вот вернуть эти самые координаты в Main или какую либо другую процедуру у меня не получается… 8-( Уважаемые знатоки! Подскажите плз как это сделать или укажите почему это сделать невозможно… Среда разработки Borland 3.1 Исходный код: Я не большой знаток ассемблера, но было однажды - баловался с драйвером мыши в Клиппере (дописывал по книге процедурку на С++, расширяющую его возможности). Там были даны следующие рекомендации: функция: 33h, прерывание: 3h. в регистре ВХ возвращается какая кнопка нажата (1 - левая, 2 - правая), в регистре СХ горизонтальное положение (в пикселях), в регистре DX вертикальное положение (в пикселях). Горизонтальное и вертикальное положение можно преобразовать в текстовые координаты путем деления на 8 (длина и ширина "полноразмерного"(мигающий прямоугольник) текстового курсора в ДОСе) Может поможет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2007, 13:27 |
|
||
|
Как добраться до координат указателя мыши в DOS?
|
|||
|---|---|---|---|
|
#18+
да это все уже сделано, проблема в том чтобы забрать результаты. Изменение void, static и т.д. в параметрах процедуры ничего не дали... 8-( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2007, 14:22 |
|
||
|
Как добраться до координат указателя мыши в DOS?
|
|||
|---|---|---|---|
|
#18+
Piterskiyда это все уже сделано, проблема в том чтобы забрать результаты. Изменение void, static и т.д. в параметрах процедуры ничего не дали... 8-( Кстати, в Borland C++ 3.1 есть замечательные функции: int86(), int86x(), intr() , которые являются "обертками" над прямым обращением к ассемблеру. Результаты там передаются либо через union REGS , либо через structure REGPACS . Подробности читайте в хелпе... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2007, 15:44 |
|
||
|
Как добраться до координат указателя мыши в DOS?
|
|||
|---|---|---|---|
|
#18+
Да я знаю... Просто это задание звучит как не пользуясь функцией intr сделать прогу которая делает subj. Прямо указано что надо использовать ассемблерные вставки. Преподы млин измываются типа развивают "творческий" подход заставляя ходить кривыми путями там, где есть прямой! p.s. В принципе остальные функции (кроме intr) разрешено использовать но как достучаться при помощи них к мыши - тоже вопрос.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2007, 16:40 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=294&tid=2028840]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
60ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 242ms |
| total: | 395ms |

| 0 / 0 |
