2010-08-01 7 views
0

마우스 입력 기능을 구현하려고하는데 입력 기능이 잘못되었습니다. 마우스 왼쪽 버튼이나 마우스 오른쪽 버튼을 클릭했지만 아무것도 인쇄하지 않았다는 것을 말해 주어야합니다.마우스 입력 안 함

#include<graphics.h> 
#include<dos.h> 
union REGS in,out; 
void Graphics(void); 
void DetectMouse(void); 
void ShowMouse(void); 
void HideMouse(void); 
void InputMouse(void); 
int main() 
{ 
    Graphics(); 
    DetectMouse(); 
    ShowMouse(); 
     // HideMouse(); 
    InputMouse(); 
    getch(); 
    closegraph(); 
    return 0; 
} 
void Graphics(void) 
{ 
    int driver=DETECT,mode; 
    initgraph(&driver,&mode,"C:\\TC\\bgi"); 
    outtextxy(1,1,"Graphics mode activated!"); 
} 
void DetectMouse(void) 
{ 
    int result; 
    in.x.ax=0; 
    result=int86(0x33,&in,&out); 
    if(result) 
    { 
     outtextxy(10,10,"Driver succesfully detected"); 
    } 
    else 
    { 
     outtextxy(10,10,"Driver not detected"); 
    } 
} 
void ShowMouse(void) 
{ 
    in.x.ax=1; 
    int86(0x33,&in,&out); 
} 
void HideMouse(void) 
{ 
    in.x.ax=2; 
    int86(0x33,&in,&out); 


} 
void InputMouse(void) 
{ 
    for(;kbhit();) 
    { 
    int x,y; 
    in.x.ax=3; 
    int86(0x33,&in,&out); 
    if(out.x.bx==1) 
     outtextxy(30,30,"Left click"); 
    if(out.x.bx==2) 
     outtextxy(40,40,"Right click"); 
    if(out.x.bx==3) 
     outtextxy(50,50,"Middle click"); 
    delay(100); 
    } 
} 

답변

1

if((out.x.bx & 1) != 0) ...보십시오 - 즉 검사는 비트 0 -이 그들을 제로 여부 누구의 추측됩니다 보장 여부 - 내가 플래그의 많은 INT33 AX = 3 '하지 않는'참고.

0

아마도 메인 루프가 있어야합니다. INT 33 AX = 0003은 마우스 입력 대기를 차단하지 않습니다.

관련 문제