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] и да сравните го с ID на съобщението, което искате да обработите.

person matja    schedule 10.03.2010