zoukankan      html  css  js  c++  java
  • C言语图形方式编程,特征鼠标(5)

    {  /* 读取鼠标及键盘外形*/
       int    but_old=*buttons;
       int    x_old=*px,y_old=*py;


       do{               /* 或 return getch(); 前往ASCII码值*/
             if(kbhit()) return bioskey(0);/* 如有键清点击前往键值*/
             regs.x.ax=3;
             int86(0x33,&regs,&regs);
             *px=regs.x.cx;       /* x坐标*/
             *py=regs.x.dx;       /* y坐标*/
             *buttons=regs.x.bx;  /* 前往鼠标击键外形:
                                     0未点击    1点击左键
                                     2点击右键  3点击双键*/
       }while(*px==x_old&&*py==y_old&&*buttons==but_old);

       MouseOff(x_old,y_old);/* 原地位异或消去擦除,并答复*/
       but_old=*buttons;
       x_old=*px;
       y_old=*py;
       MouseOn(*px,*py);     /* 新地位显现*/
       return -1;
    }

    int MouseInbox(int x1,int y1,int x2,int y2,int x,int y)
    {
         return((x>=x1&&x<=x2&&y>=y1&&y<=y2)?1:0);  /* 若在预定地区就前往 1 */
    }

    int MouseInit()
    {   /* 初始化鼠标*/
        int recored;

        MouseMath();            /* 初始化时先竞赛争论*/
        regs.x.ax=0;
        int86(0x33,&regs,&regs);/* 调用中缀检测*/
        recored=regs.x.ax;
        if(recored==0)
        {   printf("Mouse not found !\n");
            getch();return 0;
        }
        regs.x.ax = 1;          /* 显现鼠标*/
        int86(0x33,&regs,&regs);
        return recored;
    }

    void main()
    {
        int  msx,msy,msz,order;
        int  gmode=0,gdriver=DETECT;/* 和gdriver = VGA,gmode = VGAHI是十分效果 */

        registerbgidriver(EGAVGA_driver);/* 注册BGI驱动后可以不用要.BGI文件的支撑运转 */
        initgraph(&gmode,&gdriver,"");
        if(graphresult())
        {
            printf ("Graphics isn't available...");
            getch();exit(1);
        }
        MouseInit();/* 初始化*/

        setcolor(1);
        rectangle(140,80,500,110);
        setfillstyle(8,2);
        floodfill(150,100,1);setcolor(15);
        outtextxy(182,85,"Move to me to change mouse's shape");
        outtextxy(180,100,"Click me to quit ...  QQ: 527274766");
        for(;;)
        {
            order=MouseRead(&msx,&msy,&msz);
            if(order==283)  break;

            if( MouseInbox(140,80,500,110,msx,msy))
            {   /* 变化鼠标外形*/
                if(Mousekind!=1 0*2 9*4 15*64)
                {
                    MouseOff(msx,msy);/* 擦除*/
                    Mousekind=1 0*2 9*4 15*64;/* 变化*/
                    MouseMath();/* 从头竞赛争论鼠标外形*/
                }
                if(msz==1)   { closegraph();exit(0);}
            }
            else
            {   /* 答复鼠标外形*/
                if(Mousekind!=0 1*2 15*4 2*64)
                {
                    MouseOff(msx,msy);
                    Mousekind=0 1*2 15*4 2*64;
                    MouseMath();
                }
           }
       }
    }



    版权声明: 原创作品,允许转载,转载时请务必以超链接方式标明文章 原始来因 、作者信息和本声明。不然将穷究法令责任。

  • 相关阅读:
    隔行变色&&鼠标移入变色
    滚动之固定顶部
    页面滚动之回到顶部
    定时器之秒表
    定时器之小僵尸的移动
    tomcat+spring+https
    域名相关
    【软件创意】智能Goals (android)
    【神一样的作业】二维数组连续的二维子数组的和(元素可以连续)
    【软件工程】敏捷开发方法的总结
  • 原文地址:https://www.cnblogs.com/zgqjymx/p/1975556.html
Copyright © 2011-2022 走看看