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

これは、上記のようなことをしたいサンプルコードです...

SetCursorPos()でマウスを動かすことができます。では、クリックイベントを実行するにはどうすればよいですか

4

2 に答える 2

0

まあ、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
于 2013-03-27T15:23:49.960 に答える
0

SendInputWinAPI 関数を使用して、任意の形式の入力をシミュレートできます(非推奨のmouse_event関数もあります。これは使いやすいですが、非推奨/置き換えとしてマークされています)。

あなたが何をしているかに応じて、SendMessage(ブロッキング) またはPostMessage(ノンブロッキング) のほうが使いやすい/使いやすいかもしれません。これらは入力イベントによって生成されたウィンドウ メッセージを直接送信するからです。

于 2013-03-27T14:47:25.103 に答える