2009-07-23 24 views
0

私のアプリケーションは、別のウィンドウアプリケーション内でプラグインとして実行されます。したがって、私のウィンドウはしばしば焦点を持っていません。今、誰かがボタン/メニューの上にマウスを移動して一度クリックすると、そのウィンドウにフォーカスが設定されます。次に、彼は実際のボタン機能を得るために再度クリックする必要があります。.NETでマウスクリックを繰り返す方法

これはほんの少しの迷惑ですが、私はそれを取り除きたいと思います。最初に、マウスがダイアログスペースに入るたびにフォーカスを主張しようとしましたが、これはもっと迷惑であることが判明しました。だから私は何をしたいですか、マウスのクリックを繰り返すことですので、1回のクリックでフォーカスが変更され、ボタンが押されたように見えます。

明らかに、クリックがSetFocusになったときのみこれを行う必要があります。それ以外の場合は、ボタン機能を2回実行します。

提案がありますか?私はあるとして、あなたが行動を続けることを示唆している

深く永遠にお世話になった、 デビッド

答えて

1

マウス・クリック・シミュレーション、ここで少し厄介なようだが、あなたは常にP /呼び出してSendInput API経由で任意の(X、Y)のいずれかのマウスクリックをシミュレートすることができます。

[DllImport("user32.dll", SetLastError=true)] 
static extern uint SendInput(uint nInputs, INPUT [] pInputs, int cbSize); 

あなたはまた、伝播すると周りいじることができます/ WM_MOUSEXXXXXメッセージを直接生成していますが、私はこれを多く試してきました。

+0

ありがとう、私はこれらを試してみます。 –

1

。これはオペレーティングシステムの標準的な動作であり、それを変更すると標準のユーザビリティガイドラインが破られる可能性があります。

+0

ポイントは、私はUIの慣習から逸脱したくないのですが、従来の動作は*迷惑です。 –

関連する問題