该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include
#include
#include
#include
void menu();
void paint();
void main()
{
initgraph(640,480);//初始化图形窗口
setcolor(BLACK);//设置画图颜色为黑色
setbkcolor(WHITE);//设置背景为白色
cleardevice();
menu();//菜单函数
paint();//画图函数
getch();
closegraph();
}
void menu()
{
rectangle(0,0,640,40);
line(0,20,80,20);//划线菜单选项
circle(120,20,20);
rectangle(170,10,220,30);//画矩形菜单选项
ellipse(240,0,320,40);//画椭圆菜单选项
arc(340,0,400,40,7.5,15.7);//画圆弧菜单选项
pie(360,0,480,40,0,1.57);//画扇形菜单选项
setfillcolor(RED);
setfillstyle(SOLID_FILL);//红色填充色菜单选项
int pt[]={
500,10,
520,10,
520,30,
500,30
};
fillpoly(4,pt);
setfillcolor(BLUE);
setfillstyle(SOLID_FILL);//蓝色填充色菜单选项
int p[]={
540,10,
560,10,
560,30,
540,30,
};
fillpoly(4,p);
setfillcolor(YELLOW);
setfillstyle(SOLID_FILL);//黄色填充色菜单选项
int m[]={
580,10,
600,10,
600,30,
580,30,
};
fillpoly(4,m);
setfillcolor(BLACK);//黑色填充色菜单选项
setfillstyle(SOLID_FILL);
int a[]={
620,10,
640,10,
640,30,
620,30,
};
fillpoly(4,a);
}
void paint()
{
MOUSEMSG m;
MOUSEMSG n;
while(true)
{
m=GetMouseMsg();
if(m.x>=0&&m.x<=80&&m.y>=0&&m.y<=40)//若鼠标在画线菜单选项范围内
{
if(m.uMsg==WM_LBUTTONDOWN)//若鼠标左键单击
{
Sleep(1000);
FlushMouseMsgBuffer();//清除鼠标缓存信息
n=GetMouseMsg();//获取新的鼠标信息
if(n.uMsg==WM_LBUTTONDOWN)
moveto(n.x,n.y);//将原点设置为当前鼠标位置
while(n.uMsg==WM_LBUTTONDOWN&&n.uMsg==WM_MOUSEMOVE)
{
lineto(n.x,n.y);//在鼠标移动过程中持续画线,至最终画一条完整的先线
}
}
}
}
}