Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Программирование мыши, вывести координаты курсора 
:(
    Опции темы
DrWeb
Дата 16.12.2008, 21:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 78
Регистрация: 25.11.2007
Где: Украина, Донецк

Репутация: нет
Всего: 1



Мне надо вывести курсор и его координаты между нажатием правой и левой кнопками.То есть нажимаешь Левую-выводит одни координаты,двигаешь мышью -нажимаешь правую и выводит рядом другие.Вот мой код.Происходит обработка событий нажатия клавиш,а вот как вывести координаты не пойму.Читаю их с помощью
Код

mov ax,0003h
int 33h

а дальше вывести не получается
помогите smile

Код

MASM
MODEL    tiny
STACK    256

.data
    mousel    db    32 dup (0)
            db    4  dup (255), 4 dup (0), 4 dup (255), 4 dup (0)
            ;db    4  dup (255), 4 dup (0), 4 dup (255), 4 dup (0)
    mouser    db    32 dup (0)
            db    32 dup (17)
    ;strms    db    '1-bus mouse; 2-serial mouse, 3-inport mouse, 4-PS/2 mouse, 5-HP mouse: $'
    mes db 'WeLcOmE tO mY pRoGrAmM!  $'
    text db 'name? '
    tmp dw ?
.code
start:
    mov        ax,@data    ;адрес сегмента данных -> AX
    mov        es,ax        ;далее в ES
    mov        ds,ax        ;далее в DS
    xor        ax,ax        ;обнуление AX

videoinit:
    mov        ax,12h        ;инициализировать видеорежим
    int        10h            ;видеорежим 640x480*16 colors

printmouse:
    mov        ax,024h
    int        33h

    xor        ax,ax        ;обнуление AX
    mov        ah,09h
    mov        dx,offset mes
    int        21h

    mov        ah,02h
    add        cl,30h
    mov        dl,cl        ;вывод инфо о мыши
    int        21h

    ;mov        ah,00h        ;ожидание нажатия любой клавиши
    ;;int        16h

    ;mov        ax,12h        ;инициализировать видеорежим
    ;int        10h            ;видеорежим 640x480*16 colors

mouseinit:
    mov        ax,0000h    ;инициализировать мышь
    int        33h
    mov        ax,0001h    ;показать курсор мыши
    int        33h

proc_left:
    mov        ax,0014h    ;установить обработчик событий мыши
    mov        cx,0014h    ;на нажатие левой или правой
    mov        dx,offset process
    int        33h

    mov        ah,00h        ;ожидание нажатия любой клавиши
    int        16h

    mov        ax,000Ch    ; удалить обработчик событий мыши
    mov        cx,0000h    ;удалить обработчик событий мыши
    int        33h

    mov        ax,3        ;текстовый режим
    int        10h
    jmp        exit

process:
    cmp        ax,0004h    ;если левая клавиша
    je        left
    cmp        ax,0010h    ;если правая клавиша
    je        right
    retf

left:
    push    es            ;сохранияем регистр
    mov        ax,@data
    mov        es,ax
    
    mov ax,0003h ;читаем положение курсора
    int 33h    
    
    mov        bx,0        ;позиция рисования
    mov        cx,0        ;начала курсора
    mov        ax,0009h    ;изменить вид курсора
    mov        dx,offset mousel
    int        33h            ;адрес шаблона в mousel
    pop        es            ;восстанавливаем регистр
    retf

right:
    push    es            ;сохранияем регистр
    mov        ax,@data
    mov        es,ax
    
    mov ax,0003h ;читаем положение курсора
    int 33h 
    
    mov        bx,0        ;позиция рисования
    mov        cx,0        ;начала курсора
    mov        ax,0009h    ;изменить вид курсора
    mov        dx,offset mouser
    int        33h            ;адрес шаблона в mouser
    pop        es            ;восстанавливаем регистр
    retf

exit:
    MOV        AX,4C00H    ;выйти из программы
    INT        21H

end        start

PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm: Общие вопросы"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1024 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.