第3章 HighGUI图形用户界面初步_3.3鼠标操作

本文详细介绍了如何使用回调函数设置鼠标操作,包括设置鼠标回调函数的方法、回调函数的参数解析及示例代码。通过本教程,读者可以了解不同鼠标事件及其在图像坐标系中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

3_3鼠标操作

鼠标操作采用回调函数的方式进行

设置鼠标操作回调函数:setMouseCallback
void setMouseCallback(const sting& winname,
MouseCallback onMouse,
void* userdata)
参数1 winname:窗口名字
参数2 onMouse:回调函数指针
参数3 userdata:供用户传递参数


回调函数类型
typedef void (*MouseCallback)(int event,
int x,
int y,
int flags,
void* param)
参数1 event:
enum
{
    EVENT_MOUSEMOVE      =0,
    EVENT_LBUTTONDOWN    =1,
    EVENT_RBUTTONDOWN    =2,
    EVENT_MBUTTONDOWN    =3,
    EVENT_LBUTTONUP      =4,
    EVENT_RBUTTONUP      =5,
    EVENT_MBUTTONUP      =6,
    EVENT_LBUTTONDBLCLK  =7,
    EVENT_RBUTTONDBLCLK  =8,
    EVENT_MBUTTONDBLCLK  =9
};
参数2 x:鼠标在图像坐标系(注意不是窗口坐标系)的坐标
参数3 y:鼠标在图像坐标系(注意不是窗口坐标系)的坐标
参数4 flags:
enum
{
    EVENT_FLAG_LBUTTON   =1,
    EVENT_FLAG_RBUTTON   =2,
    EVENT_FLAG_MBUTTON   =4,
    EVENT_FLAG_CTRLKEY   =8,
    EVENT_FLAG_SHIFTKEY  =16,
    EVENT_FLAG_ALTKEY    =32
};

例:
void onMouseHandle(int event, int x, int y, int flag, void* param)
{
...
switch(event)
{
case:EVENT_MOUSEMOVE:
...
break;
...
}
}

int main()
{
...
setMousCallback("win",
on_MouseHandle,
(void*)&srcImage)
...

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值