Прерывания щелчка правой кнопкой мыши в сборке 8086

Я работаю над проектом сборки 8086 на компьютере с Windows, и мне нужно знать, какая кнопка мыши была нажата. Какие прерывания для этого? или как мне узнать это?

Спасибо


person Ciarán    schedule 10.03.2010    source источник


Ответы (2)


Если вы создаете программу для DOS, которая работает под Windows, вы можете использовать программное прерывание 0x33, функция 3, которая возвращает состояние кнопки в регистре BL:

    mov   ax,0x3
    int   0x33
    test  bl,1
    jnz   left_button_pressed
    test  bl,2
    jnz   right_button_pressed

Подробнее здесь http://www.ctyme.com/intr/rb-5959.htm

Если вы создаете родное приложение для Windows, вы можете протестировать нажатия кнопок, проверив стандартные сообщения кнопок мыши (WM_LBUTTONDOWN/UP, WM_RBUTTONDOWN/UP, WM_MBUTTONDOWN/UP), переданные в ваш зарегистрированный WndProc для главного окна, созданного вашей программой. .

Объявление функции для WndProc: «LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);», тип сообщения передается в uMsg, поэтому вы должны проверить DWORD в [esp+12] и сравнить его с идентификатором сообщения, которое вы хотите обработать.

person matja    schedule 10.03.2010