質問

私のアプリは、別のウィンドウのアプリ内のプラグインとして動作します。このように、私の窓は、多くの場合、フォーカスを持っていません。誰かがボタン/メニューの上にマウスを移動し、一度クリックした場合さて、それがない、すべては私のウィンドウにフォーカスを設定されています。次に、(s)は、彼が実際のボタンの機能を取得するためにもう一度クリックする必要があります。

これはマイナーな迷惑ですが、私はそれを取り除くしたいと思います。まず私は、マウスが私のダイアログスペースに入るたびにフォーカスを主張しようとしたが、これはもっと迷惑であることが判明しました。だから私がやりたいものをマウスクリックを繰り返しているので、それがボタンを押した単一の両方をクリックし、変更フォーカスかのように見えると。

クリックは、それ以外の場合は二回ボタン機能を実行する、のSetFocusになったときます。

もちろん、私はこれだけを行う必要があります

任意の提案ですか?

深く永遠に恩義、 デビッド

役に立ちましたか?

解決

マウス・クリック・シミュレーションは、ここでは少し厄介なようだが、あなたは常に<のhref = "http://www.pinvoke.net/default.aspx/user32経由で任意の(X、Y)で任意のマウスクリックをシミュレートすることができます。 SendInput」のrel = "nofollowをnoreferrer"> SendInput API のP /呼び出しを通じてます:

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

また、直接WM_MOUSEXXXXXメッセージを生成するが、私はこれで多くのことを果たしたと私はそれが総その場しのぎだと言うとき私を信じてきました/伝播すると周りいじることができます。

他のヒント

私があるとして、あなたが行動を続けることを示唆しています。これは、オペレーティングシステムの標準的な動作であり、それは標準のユーザビリティガイドラインを破る可能性が変化します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top