手势鼠标绘图

在一些很古老的编译器中,库不是特别全,开发UI界面需要从最底层开始,比如说鼠标图标的显示,有手势鼠标,十字鼠标,一般光标,箭头鼠标等,下面展示鼠标绘图函数。

void mouse(int x,int y)
{
    
    switch(MouseS)
    {
        case 1:                                  //手势鼠标
        {
                setcolor(WHITE);
                setlinestyle(0,0,1);
                line(x-1,y+9,x-1,y+8);
                line(x,y+7,x,y+11);
                line(x+1,y+6,x+1,y+13);
                line(x+2,y+8,x+2,y+14);
                line(x+3,y-1,x+3,y+15);
                arc(x+4,y-1,0,180,1);
                line(x+4,y-2,x+4,y+15);
                line(x+5,y-1,x+5,y+16);
                arc(x+6,y+3,0,180,1);
                line(x+6,y+2,x+6,y+16);
                line(x+7,y+3,x+7,y+17);
                arc(x+8,y+5,0,180,1);
                line(x+8,y+4,x+8,y+17);
                line(x+9,y+5,x+9,y+16);
                arc(x+10,y+7,0,180,1);
                line(x+10,y+6,x+10,y+16);
                line(x+11,y+7,x+11,y+13);

                setcolor(DARKGRAY);
                line(x-1,y+9,x-1,y+8);
                line(x-1,y+8,x+1,y+6);
                line(x+1,y+6,x+3,y+10);
                line(x+3,y+10,x+3,y-1);
                arc(x+4,y-1,0,180,1);
                line(x+5,y-1,x+5,y+5);
                arc(x+6,y+3,0,180,1);
                line(x+7,y+3,x+7,y+7);
                arc(x+8,y+5,0,180,1);
                line(x+9,y+5,x+9,y+9);
                arc(x+10,y+7,0,180,1);
                line(x+11,y+7,x+11,y+13);
                arc(x+7,y+13,-90,0,4);
                line(x+7,y+17,x+3,y+15);
                line(x+3,y+15,x+1,y+13);
                line(x+1,y+13,x-1,y+9);
        }
            break;
        case 2:                        //光标
        {
            setcolor(DARKGRAY);
            setlinestyle(0,0,1);
            line(x+1,y-1,x+9,y-1);
            line(x+1,y+15,x+9,y+15);
            line(x+5,y-1,x+5,y+15);
        }
            break;
        case 3:                        //十字
        {
            setcolor(WHITE);
            setlinestyle(0,0,1);
            line(x-1,y+7,x+11,y+7);
            line(x+5,y-1,x+5,y+15);
        }
            break;
        default:              //默认鼠标
        {
            setlinestyle(0,0,1);
            setcolor(WHITE);
            line(x,y,x,y+13);
            line(x+1,y+1,x+1,y+12);
            line(x+2,y+2,x+2,y+11);
            line(x+3,y+3,x+3,y+10);
            line(x+4,y+4,x+4,y+12);
            line(x+5,y+5,x+5,y+9);
            line(x+5,y+11,x+5,y+14);
            line(x+6,y+6,x+6,y+9);
            line(x+6,y+13,x+6,y+15);
            line(x+7,y+7,x+7,y+9);
            line(x+8,y+8,x+8,y+9);
            line(x+9,y+9,x+9,y+9);
            setcolor(DARKGRAY);
            line(x-1,y-1,x-1,y+14);
            line(x-1,y+14,x+3,y+11);
            line(x+3,y+11,x+3,y+12);
            line(x+3,y+12,x+4,y+13);
            line(x+4,y+13,x+4,y+14);
            line(x+4,y+14,x+7,y+17);
            line(x+7,y+17,x+7,y+13);
            line(x+7,y+13,x+6,y+12);
            line(x+6,y+12,x+6,y+11);
            line(x+6,y+11,x+5,y+10);
            line(x+5,y+10,x+11,y+10);
            line(x+11,y+10,x-1,y-2);
        }
        break;
    }
}

当然还可以自定义一些鼠标光标样式,可以自己描点设计,然后通过代码实现。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值