在一些很古老的编译器中,库不是特别全,开发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;
}
}
当然还可以自定义一些鼠标光标样式,可以自己描点设计,然后通过代码实现。