鼠标事件
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
on_mouse_pointImg
point:鼠标的X,Y坐标:该坐标为鼠标距离截获该消息的窗口左上角的位置是一个相对位置而不是在屏幕像素上的绝对位置。
函数原型编辑
afx_msgvoidOnMouseMove(
UINT nFlags,
CPoint point
);
当鼠标移动时调用此函数。
参数:
nFlags
指示各种虚拟按键是否按下,此参数可以是任何下列值的组合:
MK_CONTROL当CTRL键按下时。
MK_LBUTTON当鼠标左键按下时。
MK_MBUTTON当鼠标中键按下时。
MK_RBUTTON当鼠标右键按下时.
MK_SHIFT当SHIFT按下时。
例如:当窗口的左上角坐标为(10,10)那么当鼠标在屏幕的(10,10)像素点的时候,OnMouseMove函数point值为(0,0)因为是相对窗口左上角的相对位置。
void on_mouse( int event, int x, int y, int flags, void* param )
2012-09-20 12:08范永祥1991|分类:其他编程语言|浏览521次
哪位大神帮忙解释一下为什么on_mouse 函数的函数体只有
{
if( event == CV_EVENT_LBUTTONDOWN )
{
//calibration_done = true;
}
}
其他的参数为什么没有用到?像x,y?
这个根据事件是什么类型来判断参数用哪个;
mouse的事件有很多,左键单击,双击;中建单击,双击;右键单击,双击;以及鼠标移动等
比如仅仅需要单击的事件,双击事件,上面的代码判断就够了;如果还需要用到鼠标的坐标,那就需要用到x,y;flags是CV_EVENT_FLAG的组合, param是用户定义的传递到cvSetMouseCallback函数调用的参数。