C++鼠标当前位置绘制方框,掌握程序鼠标坐标获取与绘图方法,尝试为其添加绘制直线功 能
时间: 2023-12-20 16:04:20 浏览: 100
以下是一个使用C++实现鼠标当前位置绘制方框并添加绘制直线功能的示例代码:
```cpp
#include <iostream>
#include <graphics.h>
#include <conio.h>
using namespace std;
int main()
{
initgraph(640, 480); // 初始化图形窗口
int x1 = 0, y1 = 0, x2 = 0, y2 = 0; // 定义直线的起始点和终止点
while (!kbhit()) // 在没有按下键盘的情况下循环
{
if (MouseHit()) // 判断是否有鼠标事件发生
{
MOUSEMSG msg = GetMouseMsg(); // 获取鼠标事件
switch (msg.uMsg)
{
case WM_MOUSEMOVE: // 鼠标移动事件
x2 = msg.x; // 更新直线的终止点
y2 = msg.y;
cleardevice(); // 清空屏幕
rectangle(x1, y1, x2, y2); // 绘制矩形
line(x1, y1, x2, y2); // 绘制直线
break;
case WM_LBUTTONDOWN: // 鼠标左键按下事件
x1 = msg.x; // 更新直线的起始点
y1 = msg.y;
break;
case WM_LBUTTONUP: // 鼠标左键释放事件
x2 = msg.x; // 更新直线的终止点
y2 = msg.y;
cleardevice(); // 清空屏幕
rectangle(x1, y1, x2, y2); // 绘制矩形
line(x1, y1, x2, y2); // 绘制直线
break;
}
}
}
closegraph(); // 关闭图形窗口
return 0;
}
```
代码中使用了`initgraph()`函数初始化图形窗口,使用`cleardevice()`函数清空屏幕,使用`rectangle()`函数绘制矩形,使用`line()`函数绘制直线。在鼠标事件处理中,根据鼠标事件类型更新直线的起始点和终止点,并绘制出矩形和直线。在没有按下键盘的情况下循环等待鼠标事件的发生。当键盘有输入时,程序结束并关闭图形窗口。
阅读全文