1

これはトリッキーです。デスクトップの上部にバーを描画するプログラムを作成したいと考えています。次に、特定のデスクトップ ウィンドウが最大化されていても、開いているすべてのウィンドウがこのタイトル バーの上に描画されないようにします。これと似たようなことが行われているのを見たのは覚えていますが、プログラムは覚えていません。これらの拡張タスクバータイプのプログラムは、ウィンドウが2番目のモニターの拡張タスクバーに重ならないようにするために、同様のことをしなければならないと思います。

これを実現するには、Windows のどのフレームワークが必要ですか? ウィンドウが作成されたときにアクティブなアクセシビリティを確認し、ウィンドウハンドルを取得してサイズを変更して配置しますか?

ウィンドウ リストを反復処理して移動することはできますが、ウィンドウが開いたり最大化されたりした場合はどうなりますか?

この動作がどのように達成されるかについてのアイデアはありますか?

4

2 に答える 2

1

あなたが探しているのは「作業領域」と呼ばれ、MSDN では「システム タスクバーやアプリケーション デスクトップ ツールバーによって隠されていない画面の部分」と定義されています。SPI_SETWORKAREAアクションを使用してワークエリアを設定できSystemParametersInfoます -- これを既存のワークエリアから新しいバーのエリアを差し引いたものに設定します。

于 2012-08-18T05:36:55.647 に答える
0

AppBar を作成したいようですね: Windows には、デスクトップ領域を管理するためのサポートが組み込まれています。これには、アプリ用に側面の 1 つに沿ってスペースを確保するように要求することも含まれます。詳細については、 MSDN: アプリケーション デスクトップ ツールバーの使用を参照してください。

MSDN からの要約:

アプリケーション デスクトップ ツールバー (アプリバーとも呼ばれます) は、Windows タスクバーに似たウィンドウです。画面の端に固定され、通常、ユーザーが他のアプリケーションやウィンドウにすばやくアクセスできるようにするボタンが含まれています。システムは、アプリバーが使用するデスクトップ領域を他のアプリケーションが使用できないようにします。任意の時点で、任意の数のアプリバーをデスクトップに配置できます。
于 2012-08-18T21:01:26.230 に答える