2009-07-20 12 views
2

Windows(XP、Vista、7(それは.NET 3.0以降をサポートしているすべてのバージョン))の下で1つのウィンドウにフォーカスを設定するAPI関数を使用したい。そのため、キーを押すと、OSはフォーカスを別のウィンドウに変更します。ウィンドウの焦点合わせのためのWin32API

おかげ

P.S:あなたは私はあなたがそれを教えしたいと思います。このソリューションを開発することができたと.NET 2.0(以降)のいずれかのクラスを知っていれば。

+0

Focalizate ...本当に?それは最高の言葉ではありません。 –

+0

私は、それは "ウィンドウのフォーカスを設定"を意味すると仮定します。タイトルと質問のテキストが少し矛盾しているので、AskerがWin32 API関数や.NET BCLのものを望んでいるかどうかを知りたい。 – Rob

+0

また、Win32ソリューションを求めていますが、次に.NEtソリューションを求めます。どちらですか? –

答えて

2

SetForegroundWindowを呼び出すことができます。これによりウィンドウが前面に移動し、ウィンドウが表示されます。

これには、Windows HWNDが必要です。

メモとして、予期せずウィンドウに焦点を合わせることをユーザーが気にしません。注意して使用してください。さらに、Windowsは必ずしも実際にウィンドウを前方に持っていくわけではありません。場合によっては、タイトルバーを単に「点滅」させることもできます。

+0

はい、タイトルバーを点滅させることは正しい(文書化された)行動であるはずです。 –

+0

フォアグラウンドウィンドウが変更される条件はまだあります。それらは文書化されている。一般的に、ウィンドウズはフォーカスを悪用するのを難しくしようとしますが、その努力では100%成功することはほとんどありません。 –

+0

ええ、私は知っています。私たちのアプリの一つがこれを行い、私はそれが嫌いです。 –

関連する問題