【问题标题】:Mouse Click Operation VC++鼠标点击操作VC++
【发布时间】:2013-03-17 16:50:47
【问题描述】:
if (i==0)
{
 //Here I've to do MouseDown operation
}
else
{
 //perform MouseUp operation
}

这是我想做的类似上面的示例代码......

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

【问题讨论】:

  • 为什么用opencv标记?你到底想达到什么目的?
  • 我正在使用 Opencv 库做虚拟鼠标之类的事情...

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


【解决方案1】:

可以使用SendInput WinAPI 函数模拟任何形式的输入(还有已弃用的mouse_event 函数,我发现它更易于使用,但被标记为已弃用/取代)。

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

【讨论】:

    【解决方案2】:

    好吧,对于 highgui 窗口,试试这个:

    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
    

    【讨论】:

      猜你喜欢
      • 2023-01-24
      • 2016-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-31
      • 2014-01-15
      相关资源
      最近更新 更多