用mouse_msg写一个用鼠标左键绘制多边形,右键结束绘制并填充多边形颜色的代码
时间: 2024-04-03 09:36:43 浏览: 82
以下是使用C语言编写的用鼠标左键绘制多边形,右键结束绘制并填充多边形颜色的代码,使用了mouse_msg来实现:
```c
#include <graphics.h>
int main() {
int poly[20]; // 定义多边形的顶点数组
int i = 0; // 记录顶点个数
initgraph(640, 480); // 创建一个宽640,高480的窗口
// 鼠标事件回调函数
void mouse_callback() {
MOUSEMSG mouse = GetMouseMsg();
switch (mouse.uMsg)
{
case WM_LBUTTONDOWN:
// 左键按下,记录顶点坐标
poly[i * 2] = mouse.x;
poly[i * 2 + 1] = mouse.y;
i++;
break;
case WM_RBUTTONDOWN:
// 右键按下,绘制多边形并填充颜色
setfillstyle(SOLID_FILL, RED); // 设置填充颜色为红色
fillpoly(i, poly); // 填充多边形
i = 0; // 重置顶点个数
break;
default:
break;
}
}
// 注册鼠标事件回调函数
while (true) {
mouse_callback();
}
closegraph(); // 关闭图形窗口
return 0;
}
```
需要注意的是,如果是在Windows平台上使用graphics.h库,需要安装Borland C++ 编译器,或者使用Dev-C++等IDE,同时设置编译选项中的graphics库。
阅读全文