鼠标单击操作VC ++

时间:2013-03-27 14:41:59

标签: visual-studio visual-c++ opencv

if (i==0)
{
 //Here I've to do MouseDown operation
}
else
{
 //perform MouseUp operation
}

这是示例代码我想做一些像上面那样......

我可以通过SetCursorPos()移动鼠标。那么我该如何执行点击事件

2 个答案:

答案 0 :(得分:0)

任何形式的输入都可以使用SendInput WinAPI函数进行模拟(也有不推荐使用的mouse_event函数,我发现它更容易使用,但被标记为已弃用/已取代)。

根据您的目标,SendMessage(阻止)或PostMessage(非阻塞)可能更好/更简单,因为它们直接发送由输入事件生成的窗口消息。

答案 1 :(得分:0)

好吧,对于highgui windows,请尝试这样做:

void onmouse( int event, int x, int y, int d, void *ptr )
{
    // cache coords for use in main()
    cv::Point * p = (cv::Point *)ptr;
    p->x = x;
    p->y = y;

    if ( event != 0 )
        cout << event << " " << x << " " << y << " "  << d << " " << endl;
}
int main() 
{

    cv::namedWindow("win",1);
    cv::Point p;
    cv::SetMouseCallback("win",onmouse,(void*)(&p));
    ...
    // whenever someone clicks or moves, the coords will be in p now