...ing logging 4.0

はてなブログに移行しました。D言語の話とかいろいろ。

困った

Windowsで,実際にはクリックせずに,画面内の任意の座標をクリックしたことにするには,どうしたらいいのだろう.
今のところわかっている方法は次のとおり.

1.クリックイベントをフックするなりしてクリックするタイミングを得て,そのときのマウスの座標を取得する.
2.取得した座標にあるウィンドウのウィンドウハンドルを得る.
3.ウィンドウハンドルから(ウィンドウスタイルなりクラス名なりを得て)コンポーネントの種類を識別する.
4.コンポーネントごとに異なる処理を行う.
  ボタンならSendMessage()でWM_LBUTTONDOWN,WM_LBUTTONUPを送る.
  リストビューなら座標からアイテムあるいはサブアイテムを取得できるので,それを選択状態にする.
  ツリービューでも同様か.
  他のコンポーネントに対しても実装する.

こうすればできそうな予感.
でも,こんな回りくどいことをせずに,単純にある座標をクリックしたことにできないのだろうか?
任意座標にあるものがボタンであろうとなんであろうとクリックしたいのだから,
ウィンドウハンドルとか使わずにやれないものだろうか・・・.
上の方法しかなかったら泣きますよ.