Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm для Windows/Dos > Получение координат кликов мыши


Автор: SCAR 14.12.2008, 20:54
Вопрос следующий у меня есть окно, в окне есть область для рисования, существует ли какая-нить функция в ассемблере типа MouseDown или MouseUp с помощью которой можно было бы получить координаты, где нажали на кнопку мыши и где отпустили. Заранее спасибо.

Автор: airyashov 14.12.2008, 22:05
dos?
windows?

Автор: SCAR 14.12.2008, 22:12
windows

Автор: Mikl_ 15.12.2008, 05:43
SCAR,  В ассемблере таких функций нет (если конечно не написать ее самому) обычно для программирования под windows используют windows API -- а вот там, как раз и есть стандартные функции для обработки правого клика мыши, левого клика, двойных кликов, изменение mouse scroll и много всего другого. Вопрос в том, подо что конкретно пишешь задачу: windows console или windows gui? там и там делается по разному

Автор: airyashov 15.12.2008, 16:04
если оконное приложение, то ловите в оконной процедуре события

Автор: SCAR 15.12.2008, 22:57
Приложение оконное. WinAPI в нем я использую. Я понимаю что надо ловить событие WM_COMMAND или WM_SYSCOMMAND, только опыта программирования на ассемблере не хватает для реалиазиции кода... Был бы очень благодарен хоть за небольшой намек как организовать структуру функции обработки с учетом концепций программирования на ассемблере.

Автор: Mikl_ 16.12.2008, 06:47
SCAR, на чем хоть пишешь: NASM, YASM, FASM, MASM, TASM (другое)? 
WM_COMMAND используют если ты кликаешь по меню окошка, или по другим элементам управления расположенным на окне (кнопки, Editы и т.п.). Тебе нужны WM_RBUTTONDOWN или WM_LBUTTONDOWN -- в зависимости какой клик левый или правый ты собрался обработать

Автор: SCAR 16.12.2008, 15:19
  Пишу на MASM32, надо отслеживать нажатие и отжатие левой кнопки мыши на пустой части формы.

Автор: Mikl_ 17.12.2008, 04:25
SCAR, 
1) masm32 -- это пакет, собранный hutch, содержит примеры написания программ на ассемблере под Windows, кучу утилит, асм-редактор, отладчик и т.д. -- а пишешь ты все таки на masm
2) теперь конкретно о твоей задаче, что должно происходить если ты кликнул левой клавишей а потом ее отпустил --- линия появляться, как в paintbrush? Или как ты себе это представляешь?

Автор: SCAR 19.12.2008, 20:51
Дело в том, что я пишу свой алгоритм генерации отрезков. Т.е. у меня будет функция, в которую параметрами передаются (X,Y) - координаты пикселя где была зажата левая кнопка, и координаты где она была отпущена. А уже моя функция будет там что-то прорисовывать... На данный момент стоит задача просто запомнить координаты точкек начальной и конечной в какие-то переменные.... 

Автор: Mikl_ 22.12.2008, 06:50
SCAR, вот тебе для примера программа, написанная под WinXP которая обрабатывает до 20 левых  и правых кликов -- разбирайся и переделывай  smile 

Автор: SCAR 25.12.2008, 00:40
Большое спасибо! Буду пробовать smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)