次の方法で共有


ウィンドウ管理

手記

このデザイン ガイドは Windows 7 用に作成されたもので、新しいバージョンの Windows では更新されていません。 ガイダンスの多くは原則として適用されますが、プレゼンテーションと例には、現在の設計ガイダンス 反映されていません。

この記事では、最初に画面に表示されたときのウィンドウの既定の配置、他のウィンドウ (Z オーダー)、初期サイズ、および表示が入力フォーカスに与える影響について説明します。

次のガイドラインの場合:

  • 最上位のウィンドウには所有者ウィンドウがなく、タスク バーに表示されます。 例: アプリケーション ウィンドウ。 Windows Vista 以降では、所有者ウィンドウやプロパティ シートのないダイアログ ボックスも最上位レベルと見なされます。
  • 所有ウィンドウには所有者ウィンドウがあり、タスク バーには表示されません。 例: モーダル ダイアログ ボックス、モードレス ダイアログ ボックス。
  • ユーザーが開始したウィンドウは、ユーザーのアクションの直接の結果として表示されます。 それ以外の場合は、プログラムによって開始された場合はプログラムが開始され、Microsoft Windows によって開始された場合はシステムが開始されます。 たとえば、[オプション] ダイアログ ボックスはユーザーが開始したものの、会議のアラームはプログラムによって開始されます。
  • コンテキスト ウィンドウは、起動元のオブジェクトと強い関係を持つユーザーが開始するウィンドウです。 たとえば、コンテキスト メニューまたは通知領域のアイコンによって表示されるウィンドウはコンテキストに依存しますが、メニュー バーによって表示されるウィンドウは表示されません。
  • アクティブ・モニターは、アクティブ・プログラムが実行されているモニターです。
  • 既定のモニターは、[スタート] メニュー、タスク バー、通知領域があるモニターです。

設計の概念

ウィンドウ管理は、最も基本的なユーザー アクティビティの 1 つです。 Windows Vista より前は、多くの場合、ウィンドウには小さな既定のサイズが指定され、画面の中央に配置されていました。 このアプローチは、古い単一の低解像度のモニターには適していますが、最新のビデオ ハードウェアには適していません。

Windows は最新のビデオ ハードウェアをサポートするように設計されており、多くの場合、サポートされている最小画面解像度よりも大幅に高い解像度で実行され、複数のモニターを持つことができます。 そうすることで、次のようになります。

  • ユーザーが高度なハードウェアを最大限に活用できるようにします。
  • ユーザーがマウスをより遠くに移動するのに必要な労力が少なくなります。
  • ウィンドウの配置が予測しやすくなり、見つけやすくなります。

サポートされている最小画面解像度

Windows でサポート 有効な最小 画面解像度は 800 x 600 ピクセルです。 つまり、固定サイズのウィンドウは最小解像度で完全に表示する必要がありますが (タスク バーの領域を予約しながら)、最小解像度で機能している限り、サイズ変更可能なウィンドウは 1024 x 768 ピクセルの効果的な解像度に最適化できます。

現在、Windows PC の最も一般的な物理画面解像度は 1024 x 768 ピクセル以上ですが、800 x 600 ピクセルをターゲットにすると、Windows では次のことができます。

  • 小さなノートブック PC を含むすべての最新のハードウェアで適切に動作します。
  • 高 dpi (1 インチあたりのドット数) の設定をサポートします。
  • アクセシビリティのためのより大きなフォントをサポートします。
  • グローバルベースで使用されるハードウェアをサポートします。

サポートする最小解像度を選択するには、適切なバランスを取る必要があります。 解像度を高く設定すると、最新のハードウェアのかなりの割合で最適でないエクスペリエンスが得られますが、解像度を低く設定すると、デザイナーは使用可能な画面領域を最大限に活用できなくなります。

ターゲット ユーザーが Windows の最小解像度よりも大幅に高い解像度を使用していると思われる場合は、適切にスケーリングできるサイズ変更可能なウィンドウを使用して、余分な画面領域を最大限に活用するようにプログラムを設計できます。

ガイドライン

全般

  • 800 x 600 ピクセルの Windows の最小有効解像度をサポートします。 セーフ モードで動作する必要がある重要なユーザー インターフェイス (UI) では、640 x 480 ピクセルの有効解像度をサポートします。 タスク バーに表示されるウィンドウに対して、48 ピクセルの垂直 相対ピクセル を予約することで、タスク バーで使用される領域を考慮してください。
  • サイズ変更可能なウィンドウ レイアウトを最適化して、1024 x 768 ピクセルの有効解像度を実現します。 これらのウィンドウのサイズを自動的に変更して、画面解像度を低くして、まだ機能している方法で行います。
  • 必ず、800 x 600 ピクセルで 96 dpi (100%) 、120 dpi (125%) (1024 x 768 ピクセル)、1200 x 900 ピクセルで 144 dpi (150%) で Windows をテストしてください。 コントロール、テキスト、ウィンドウのクリッピング、アイコンとビットマップのストレッチなどのレイアウトの問題を確認します。
  • タッチとモバイルの使用シナリオを使用するプログラムの場合は、120 dpi に最適化します。 現在、タッチ PC やモバイル PC では高 dpi 画面が普及しています。
  • サイズ変更可能なウィンドウでは、次の理由から、サイズ変更可能なグリフの が右下隅に表示されなくなりました。
    • ウィンドウのすべての辺と端は、右下隅だけでなく、サイズ変更可能です。
    • グリフを表示するにはステータス バーが必要ですが、サイズ変更可能なウィンドウの多くはステータス バーを提供していません。
    • サイズ変更可能なウィンドウの境界線とサイズ変更ポインターは、サイズ変更グリフよりもウィンドウのサイズが変更可能であることを伝えるのに効果的です。

タイトル バー コントロール

タイトル バー コントロールを次のように使用します。

  • 閉める。 標準ウィンドウ フレームを含むすべてのプライマリ ウィンドウとセカンダリ ウィンドウには、タイトル バーに [閉じる] ボタンが表示されている必要があります。 [閉じる] をクリックすると、ウィンドウを取り消したり閉じたりする効果があります。

閉じるボタンがscreen shot of dialog box with no close button screen shot of dialog box with no close button されていないダイアログ ボックスのスクリーン ショットをする

この例では、ダイアログ ボックスのタイトル バーに [閉じる] ボタンがありません。

  • 最小化する。 すべてのプライマリ ウィンドウと実行時間の長いモードレス セカンダリ ウィンドウ (進行状況ダイアログなど) には、[最小化] ボタンが必要です。 [最小化] をクリックすると、ウィンドウがタスク バー ボタンに縮小されます。 そのため、最小化できるウィンドウにはタイトル バー アイコンが必要です。
  • 最大化/復元をダウンします。 すべてのサイズ変更可能なウィンドウには、[最大化/復元] ボタンが表示されます。 [最大化] をクリックすると、ウィンドウは最大サイズで表示され、ほとんどのウィンドウは全画面表示になります。[復元] をクリックすると、前のサイズのウィンドウが表示されます。 ただし、一部のウィンドウでは全画面表示を使用してもメリットがないため、これらのウィンドウは最大の便利なサイズに最大化する必要があります。

ウィンドウ サイズ

  • 内容に適した既定のウィンドウ サイズを選択します。 スペースを効果的に使用できる場合は、より大きな初期ウィンドウ サイズを使用することを恐れないでください。
  • スクロール バーや切り捨てられたデータを回避するために、実用的な場合は常にサイズ変更可能なウィンドウを使用します。 動的なコンテンツとリストを含む Windows は、サイズ変更可能なウィンドウを最大限に活用できます。
  • テキスト ドキュメントの場合は、テキストを読みやすくするために、最大行長が 65 文字 することを検討してください。 (文字には、文字、句読点、およびスペースが含まれます)。
  • 固定サイズのウィンドウ:
    • 作業領域内に収まるように、完全に表示され、サイズが設定されている必要があります。
  • サイズ変更可能なウィンドウ:
    • より高い解像度に最適化できますが、表示時に必要に応じて実際の画面解像度に合わせてサイズを下げることができます。
    • ウィンドウ サイズを徐々に大きくするには、徐々に詳細情報を表示する必要があります。 少なくとも 1 つのウィンドウ部分またはコントロールにサイズ変更可能なコンテンツがあることを確認します。
    • 最大化または最大化に近い既定の復元サイズを避ける必要があります。 代わりに、通常は全画面表示なしで最も便利な既定のサイズを選択します。 ユーザーがウィンドウのサイズを変更するのではなく、ウィンドウを最大化して全画面表示にするとします。
    • コンテンツが使用できなくなったサイズを下回る場合は、最小ウィンドウ サイズを設定する必要があります。 サイズ変更可能なコントロールの場合は、最小サイズ変更可能な要素サイズを、リスト ビューの最小機能列の幅など、最小の機能サイズに設定します。
    • 小さいサイズでコンテンツを使用できるようにする場合は、プレゼンテーションを変更する必要があります。

メディア プレーヤー ボタンのscreen shot of media player buttons screen shot of media player buttons のスクリーン ショット

この例では、Windows Media Player は、ウィンドウが標準形式に対して小さくなりすぎると、その形式を変更します。

ウィンドウの場所

  • 次のガイドラインでは、"中央揃え" とは、真ん中に配置するのではなく、垂直方向の配置をモニターの上部に少しバイアスすることを意味します。 モニター/所有者の上部とウィンドウ上部の間に 45% の領域を配置し、モニター/所有者の下部とウィンドウの下部の間に 55% を配置します。 これは、目が画面の上部に自然に偏っているためです。

    中央の の上に配置されたウィンドウの図

    「中央揃え」とは、垂直方向の配置をモニターの上部にわずかにバイアスすることを意味します。

  • ウィンドウがコンテキストに依存している場合は、常に起動されたオブジェクトの近くにウィンドウを表示します。 ソース オブジェクトがウィンドウで覆われないように、元のオブジェクトを邪魔しないように配置します。

    • マウスを使用して表示する場合は、可能な場合は、下と右にオフセットします。

    オブジェクトfigure of contextual window placed right of object figure of contextual window placed right of object の右に配置されたコンテキスト ウィンドウの図

    起動されたオブジェクトの近くにコンテキスト ウィンドウを表示します。

    通知領域ウィンドウのfigure of notification area window figure of notification area window の図

    通知領域から起動された Windows アイコンは、通知領域の近くに表示されます。

  • ペンを使って表示する場合は、可能であれば、ユーザーの手で覆われないように配置します。 右利きのユーザーの場合は、左側に表示します。それ以外の場合は右に表示されます。

    オブジェクトfigure of contextual window placed left of object figure of contextual window placed left of object の左側に配置されたコンテキスト ウィンドウの図

    ペンを使用する場合は、ユーザーの手でカバーされないようにコンテキスト ウィンドウも表示します。

  • 開発者:GetMessageExtraInfo API を使用して、マウス イベントとペン イベントを区別できます。 SystemParametersInfo API と SPI_GETMENUDROPALIGNMENT を使用して、ユーザーの を確認できます。

  • 作業中のモニターの右下隅に進行状況ダイアログを配置します。

    右下隅のfigure of progress bar in lower-right corner figure of progress bar in lower-right corner の進行状況バーの図

    進行状況ダイアログを右下隅に配置します。

  • ウィンドウが現在のコンテキストまたはユーザー アクションに関連していない場合は、現在のポインターの位置から離します。 そうすることで、偶発的な対話を防ぐことができます。

  • ウィンドウが最上位レベルのアプリケーションまたはドキュメントの場合は、常にその原点をモニターの左上隅からカスケードします。 アクティブ・プログラムによって作成された場合は、アクティブ・モニターを使用します。それ以外の場合は、既定のモニターを使用します。

    左上からカスケードする 3 つのウィンドウの 図

    モニターの左上隅から最上位レベルのアプリケーションウィンドウまたはドキュメント ウィンドウをカスケードします。

  • ウィンドウが最上位レベルのユーティリティである場合は、常にモニターに "中央揃え" で表示します。 アクティブ・プログラムによって作成された場合は、アクティブ・モニターを使用します。それ以外の場合は、既定のモニターを使用します。

    モニターfigure of utility window centered in the monitor figure of utility window centered in the monitor の中央にあるユーティリティ ウィンドウの図

    最上位レベルのユーティリティ ウィンドウを中央に配置します。

  • ウィンドウが所有ウィンドウの場合は、最初に所有者ウィンドウの上に "中央揃え" で表示します。 後続の表示では、それがより便利である可能性が高い場合は、最後の場所 (所有者ウィンドウに対する相対位置) に表示することを検討してください。

    所有者ウィンドウ 中央に配置された所有ウィンドウの図

    最初は、所有しているウィンドウを所有者ウィンドウの上に中央揃えします。

  • モードレス ダイアログの場合は、最初は所有者ウィンドウの上に常に表示され、見つけやすくなります。 ただし、ユーザーが所有者ウィンドウをアクティブ化すると、モードレス ダイアログが隠される可能性があります。

    所有者ウィンドウfigure of modeless dialog box over owner window figure of modeless dialog box over owner window 上のモードレス ダイアログ ボックスの図

    モードレス ダイアログを最初に所有者ウィンドウの上部に表示して、見つけやすくします。

  • 必要に応じて、ウィンドウ全体がターゲット モニター内に表示されるように初期位置を調整します。 サイズ変更可能なウィンドウがターゲット モニターよりも大きい場合は、サイズを縮小して収まるようにします。

ウィンドウの順序 (Z オーダー)

  • 所有者ウィンドウの上に常に所有ウィンドウを配置します。 所有者ウィンドウの下に所有しているウィンドウを配置しないでください。ほとんどの場合、ユーザーには表示されません。
  • ユーザーの Z オーダー選択を尊重します。 ユーザーがウィンドウを選択したら、プログラムのそのインスタンスに関連付けられているウィンドウ (ウィンドウと所有者または所有ウィンドウ) のみを Z オーダーの先頭に移動します。 同じプログラムの独立したインスタンスなど、他のウィンドウの順序を変更しないでください。

ウィンドウのアクティブ化

  • ユーザーのウィンドウ状態の選択を尊重します。 既存のウィンドウに注意が必要な場合は、タスク バー ボタンを 3 回フラッシュして注意を引き、強調表示したままにしますが、他の操作は行わないでください。 ウィンドウを復元またはアクティブ化しないでください。 サウンド エフェクトは使用しないでください。 代わりに、ユーザーが準備ができたらウィンドウをアクティブにします。
    • 例外: タスク バーにウィンドウが表示されない場合は、そのウィンドウを他のすべてのウィンドウの上部に移動し、代わりにタイトル バーをフラッシュします。
  • プライマリ ウィンドウの復元では、セカンダリ ウィンドウに独自のタスク バー ボタンがある場合でも、そのセカンダリ ウィンドウもすべて復元する必要があります。 復元する場合は、プライマリ ウィンドウの上にセカンダリ ウィンドウを配置します。

入力フォーカス

  • ユーザーが開始したアクションによって表示される Windows は入力フォーカスを取得する必要がありますが、ウィンドウが (5 秒以内に) すぐに 表示される場合にのみ実行されます。 ウィンドウがレンダリングされると、入力フォーカスを 1 回取得できます。
    • ウィンドウのレンダリング速度が遅い (5 秒を超える) 場合、ユーザーは待機中に別のタスクを実行する可能性があります。 この時点で焦点を当てることは、特に複数回行われる場合は、迷惑になります。
  • システムによって開始されたアクションによってすぐに表示または表示されない Windows では、入力フォーカスを設定しないでください。 代わりに、フォーカスなしで上部に表示し、ユーザーが準備ができたらアクティブ化できるようにします。
    • 例外: 資格情報マネージャー します。

固執

  • ウィンドウが再表示されたら、最後にアクセスしたときと同じ状態でウィンドウを表示することを検討してください。 閉じるときに、使用されているモニター、ウィンドウ サイズ、場所、状態 (最大化と復元) を保存します。 再表示するときは、適切なモニターを使用して、保存されたウィンドウのサイズ、場所、および状態を復元します。 また、これらの属性をユーザーごとにプログラム インスタンス間で保持することを検討してください。 例外:
    • ユーザーが完全にやり直す可能性がはるかに高い場合は、これらの属性を保存したり、ウィンドウ用に保持したりしないでください。
    • Windows タブレットおよびタッチ テクノロジ コンピューターで使用される可能性が高いプログラムの場合は、横モードと縦モード用に 2 つのウィンドウの状態を保存します。 詳細については、「表示サイズを変更するための設計」を参照してください。
  • 現在のモニター構成で最後の状態を使用してウィンドウが表示されなくなる場合:
    • 最後のモニターを使用してウィンドウを表示してみてください。
    • ウィンドウがモニターより大きい場合は、必要に応じてウィンドウのサイズを変更します。
    • 必要に応じて、モニター内に収まるように左上隅に位置を移動します。
    • 上記の手順で問題が解決しない場合は、既定のウィンドウ配置ガイドラインに戻します。 可能であれば、前のサイズを復元することを検討してください。