c_cpp 鼠标回调函数on_MouseHandle()

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 鼠标回调函数on_MouseHandle()相关的知识,希望对你有一定的参考价值。

//--------------------------------【on_MouseHandle( )函数】-----------------------------
//		描述:鼠标回调函数,根据不同的鼠标事件进行不同的操作
//-----------------------------------------------------------------------------------------------
void on_MouseHandle(int event, int x, int y, int flags, void* param)
{

	Mat& image = *(cv::Mat*) param;
	switch (event)
	{
		//鼠标移动消息
		case EVENT_MOUSEMOVE:
		{
			if (g_bDrawingBox)//如果是否进行绘制的标识符为真,则记录下长和宽到RECT型变量中
			{
				g_rectangle.width = x - g_rectangle.x;
				g_rectangle.height = y - g_rectangle.y;
			}
		}
		break;

		//左键按下消息
		case EVENT_LBUTTONDOWN:
		{
			g_bDrawingBox = true;
			g_rectangle = Rect(x, y, 0, 0);//记录起始点
		}
		break;

		//左键抬起消息
		case EVENT_LBUTTONUP:
		{
			g_bDrawingBox = false;//置标识符为false
			//对宽和高小于0的处理
			if (g_rectangle.width < 0)
			{
				g_rectangle.x += g_rectangle.width;
				g_rectangle.width *= -1;
			}

			if (g_rectangle.height < 0)
			{
				g_rectangle.y += g_rectangle.height;
				g_rectangle.height *= -1;
			}
			//调用函数进行绘制
			DrawRectangle(image, g_rectangle);
		}
		break;
	}
}

以上是关于c_cpp 鼠标回调函数on_MouseHandle()的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV学习3-----利用鼠标键盘回调函数实现标定人体关节点

opencv学习笔记03-鼠标回调与trackbar

Unity3DUGUI回调函数

c_cpp 具有回调的PulseAudio示例

c_cpp 【18】基本鼠标操作

Python-OpenCV下的窗口鼠标事件交互操作(实现鼠标移动轨迹的绘制)