ユーザーは、MDI コンテナーに複数の最小化されたウィンドウがある場合、それぞれを復元しない限りそれらを区別できないと不満を漏らしています。キャプションのテキストが 6 文字を含むように、最小化されたウィンドウを少し広くすることは可能でしょうか?
前もって感謝します!
3 に答える
いいえ、これは不可能です。Windows は、現在のシステム パラメーターを使用して最小化されたウィンドウの幅を決定します。システム全体で値を変更せずに、単一のアプリケーションに対してこれを動的に変更する方法はありません。
具体的には、最小化されたすべてのウィンドウのデフォルト サイズは 160x31 です。MDI アプリケーションでは、ウィンドウが Windows タスクバーではなく MDI ホストに最小化されるため、実際にこのサイズを確認できます。Raymond Chen (Microsoft の Windows シェル チームの開発者) は、この特定のサイズが選択された理由とその意味を説明するブログ エントリをいくつか公開しました。1 つ目はこちら:最小化されたウィンドウの見かけのサイズが 160x31 になるのはなぜですか? 2 番目のフォローアップ エントリはここで読むことができます。彼はその 2 番目の投稿で次のように説明しています。
ミニチュア タイトル バーの幅は、構造体の
iWidth
メンバーによって決まります。MINIMIZEDMETRICS
関数を使用して、この構造を取得および変更できますSystemParametersInfo
。(フラグSPI_GETMINIMIZEDMETRICS
とSPI_SETMINIMIZEDMETRICS
フラグをそれぞれ使用します。) レジストリ値について言及するMinWidth
人もいますが、それらの人は間違っています。たとえば、with をいじるとMinWidth
ログオフ サイクルが必要になるのに対し、usingSPI_SETMINIMIZEDMETRICS
はすぐに有効になることに注意してください。これSPI_SETMINIMIZEDMETRICS
は、内部状態変数を更新するのに対し、レジストリを叩くと、一度ログオンすると誰も注意を払わないデータベースの値が変更されるだけだからです。高さはどうですか?これはキャプション バーの高さであり、[表示] コントロール パネルの [外観] タブから調整できます。(プログラム的に
SystemParametersInfo
は、この便利な関数を使用できます。今回は構造体のiCaptionHeight
メンバーを使用しますNONCLIENTMETRICS
。)
P/Invoking the SystemParametersInfo
functionによってデフォルトのシステム パラメータをいじることをユーザーが本当に望んでいるとは思えないため、多くのオプションが残されているわけではありません。特に一度に 1 つのウィンドウで作業し、他のウィンドウを最小化したままにしている場合は、別のインターフェイスに切り替えることをお勧めします。MDI の目的は、一度に複数のウィンドウを表示できるように、ユーザーが複数のウィンドウを並べて表示またはカスケード表示できるようにすることでした。それは典型的な使用例ではないように思われるので、代わりにタブを使用するようにアプリケーションを切り替えることで、両方のサービスが向上する可能性があります. これは、タブ付きドキュメント インターフェイス (TDI)と呼ばれることが多く、古い複数ドキュメント インターフェイス (MDI) のやや最新の実装です。それは何年にもわたって非常に人気があります。をチェックしてくださいウィキペディアの記事。
私と同じ問題を抱えている人には、解決策を見つけました:
(win+r) regedit HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics に文字列値「MinWidth」を追加します。
「MinWidth」という文字列値を変更します。次の式を使用して値を設定します: -15*幅 (ピクセル)
私にとって、許容できるものは-3300でした
小さな欠点: タスクバーの最小化されたウィンドウのサイズも変更されます (タスクバーに少数のウィンドウがある場合は、ウィンドウをより広くします)。