1

WM_MOUSEMOVE メッセージをアプリケーション (この場合は Open Office Writer) のクライアント領域に送信すると、マウスが指定された座標上にあるかのように画像がちらつきますが、その状態にはとどまりません。コードは次のとおりです。

PostMessage(hWndClient, WM_MOUSEMOVE, 0, MAKEWORD(x, y))

ここで、x と y はクライアント領域に相対的です。

これをループで送信しても、マウス オーバー イベントによって強調表示された領域がちらつくだけなので、まだ機能しません。

どんな助けでも大歓迎です。

4

2 に答える 2

1

アプリは、他のあらゆる種類のイベントでトリガーされる可能性があります。WM_MOUSEHOVERなどを見たいと思うかもしれません...久しぶりですが、これらのイベントのいくつかがどのように実装されたかについて、本当に厄介なことがあったことを覚えています-マウスをポーリングし、マウスのときにWM_MOUSELEAVEイベントを生成する別のスレッドがあったようにもはや窓の向こうにはありませんでした。あなたもそのようなものに噛まれる可能性があります。また、アプリケーション自体が、イベントを受信したときにマウスの実際の位置をポーリングしている可能性もあります。

何をしようとしているのかによっては、単にイベントを偽造しようとするのではなく、プログラムでマウスを動かすことができるかもしれません。残念ながら、このためのAPIは覚えていませんが、可能だと確信しています。

于 2010-10-22T01:38:36.400 に答える
1

メインウィンドウでこのようなsthを使用し、それが役立つように見えます... WM_MOUSEMOVEで:

POINT Point;
GetCursorPos(&Point);
ScreenToClient(hHwnd, &Point);
int X = Point.x;
int Y = Point.y;
于 2011-12-03T04:16:01.397 に答える