简单的画图工具(C语言) 您所在的位置:网站首页 如何手画一个简单的平面图画 简单的画图工具(C语言)

简单的画图工具(C语言)

2024-07-01 13:04| 来源: 网络整理| 查看: 265

我们需要调用库里面的一些函数,里面的函数功能我就不介绍了,大家可以百度或者看书。 下面这个界面就是我们这次的目标。 在这里插入图片描述 首先我们初始化一个界面 这就要用到initgraph函数 例如:

initgraph(700, 500);

在界面里面添加字符 比如添加"颜色"二字:

outtextxy(10, 10, L"颜"); outtextxy(10, 30, L"色");

在界面里面添加功能框 比如切换颜色功能框

setfillcolor(RED); //设置实心颜色为红 solidrectangle(220, 10, 260, 40);//画一个实心的红色矩形

其它颜色类似地处理。

这样操作完后就能得到下面的界面 在这里插入图片描述 工具那块也做类似处理

outtextxy(300, 10, L"工"); outtextxy(300, 30, L"具"); rectangle(330, 10, 390, 40); //画一个矩形边框 outtextxy(344, 17, L"画笔"); //将这两字写在上面画的矩形边框里

其它三个框也一样处理,就能得到下面得界面 在这里插入图片描述 我们可以再加一条线,以这条线为功能选择区和画图区的分界线

setcolor(GREEN); line(0, 48, 700, 48);

在这里插入图片描述 这样,我们的界面就基本完成了。 其实我们还可以在界面的左下角增加一个坐标显示功能,这样画图就方便一些

需要添加下面几行代码

while(1) { mmsg = GetMouseMsg(); x = mmsg.x, y = mmsg.y; //获得坐标 setfillcolor(BLACK); solidrectangle(0, 500, 100, 470); //用黑色矩形(界面是黑色)覆盖上次的坐标 //因为鼠标在移动的过程中坐标位置是不断变化的 _stprintf_s(a, _T("[%d,%d]"), x, y);//将坐标写到字符串a中 setcolor(WHITE); outtextxy(0, 480, a);//打印坐标 }

在这里插入图片描述

界面功能的选择

int i,j; mmsg = GetMouseMsg(); if (mmsg.uMsg == WM_LBUTTONDOWN) //如果鼠标左键按下 { x = mmsg.x, y = mmsg.y; if (x = 40 && y = 10) i = 1; else if (x >= 100 && x = 160 && x = 220 && x = 330 && x = 410 && x = 490 && x = 570 && x = 0 && mmsg.y < 50) { break; } if (mmsg.uMsg == WM_LBUTTONDOWN) { if (flag == 0) { x1 = mmsg.x; y1 = mmsg.y; flag = 1; } } else if (mmsg.uMsg == WM_MOUSEMOVE && flag == 1) { x2 = mmsg.x; y2 = mmsg.y; line((int)x1, (int)y1, (int)x2, (int)y2); x1 = x2; y1 = y2; } if (mmsg.uMsg == WM_LBUTTONUP) flag = 0; } } else if (j == 2 && mmsg.y >= 50) { while (1) { mmsg = GetMouseMsg(); x = mmsg.x, y = mmsg.y; setfillcolor(BLACK); solidrectangle(0, 500, 100, 470); _stprintf_s(a, _T("[%d,%d]"), x, y); setcolor(WHITE); outtextxy(0, 480, a); switch (i) { case 1: setcolor(WHITE); break; case 2: setcolor(YELLOW); break; case 3: setcolor(BLUE); break; case 4: setcolor(RED); break; default:break; } if (mmsg.y >= 0 && mmsg.y < 50) { break; } if (mmsg.uMsg == WM_LBUTTONDOWN) { if (flag == 0) { x1 = mmsg.x; y1 = mmsg.y; flag = 1; } else if (flag == 1) { x2 = mmsg.x; y2 = mmsg.y; line((int)x1, (int)y1, (int)x2, (int)y2); x1 = x2; y1 = y2; } } } } else if (j == 3 && mmsg.y >= 50) { flag = 0; while (1) { mmsg = GetMouseMsg(); x = mmsg.x, y = mmsg.y; setfillcolor(BLACK); solidrectangle(0, 500, 100, 470); _stprintf_s(a, _T("[%d,%d]"), x, y); setcolor(WHITE); outtextxy(0, 480, a); switch (i) { case 1: setcolor(WHITE); break; case 2: setcolor(YELLOW); break; case 3: setcolor(BLUE); break; case 4: setcolor(RED); break; default:break; } if (mmsg.y >= 0 && mmsg.y < 50) { break; } if (mmsg.uMsg == WM_LBUTTONDOWN) { if (flag == 0) { x1 = mmsg.x; y1 = mmsg.y; x3 = x1; y3 = y1; flag = 1; } } else if (mmsg.uMsg == WM_MOUSEMOVE && flag == 1) { x2 = mmsg.x; y2 = mmsg.y; } if (mmsg.uMsg == WM_LBUTTONUP && flag == 1) { flag = 0; continue; } if (mmsg.uMsg == WM_MOUSEMOVE && flag == 1) { setfillcolor(BLACK); solidcircle((x1 + x3) / 2, (y1 + y3) / 2, sqrt((x1 - x3)*(x1 - x3) + (y1 - y3)*(y1 - y3)) / 2 + 1); if ((y1 + y3) / 2 - sqrt((x1 - x2)*(x1 - x2) + (y1 - y3)*(y1 - y3)) / 2 = 50) { flag = 0; while (1) { mmsg = GetMouseMsg(); x = mmsg.x, y = mmsg.y; setfillcolor(BLACK); solidrectangle(0, 500, 100, 470); _stprintf_s(a, _T("[%d,%d]"), x, y); setcolor(WHITE); outtextxy(0, 480, a); switch (i) { case 1: setcolor(WHITE); break; case 2: setcolor(YELLOW); break; case 3: setcolor(BLUE); break; case 4: setcolor(RED); break; default:break; } if (mmsg.y >= 0 && mmsg.y < 50) { break; } if (mmsg.uMsg == WM_LBUTTONDOWN) { if (flag == 0) { x1 = mmsg.x; y1 = mmsg.y; flag = 1; x3 = x1; y3 = y1; } } if (mmsg.uMsg == WM_MOUSEMOVE && flag == 1) { x2 = mmsg.x; y2 = mmsg.y; } if (mmsg.uMsg == WM_LBUTTONUP && flag == 1) { flag = 0; continue; } if (mmsg.uMsg == WM_MOUSEMOVE && flag == 1) { setfillcolor(BLACK); solidrectangle(x1, y1, x3 + 1, y3 + 1); solidrectangle(x1, y1, x3 - 1, y3 - 1); solidrectangle(x1, y1, x3 + 1, y3 - 1); solidrectangle(x1, y1, x3 - 1, y3 + 1); rectangle(x1, y1, x2, y2); y3 = y2; x3 = x2; } } } } getchar(); closegraph(); return 0; }


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有