ウィンドウとは、マルチタスクOSにおいて、アプリケーションの表示のために設けられた領域のことである。
ウィンドウは、主にPC用のOSで採用されている。ディスプレイ上の一定の領域を占め、移動やサイズ変更、最小化、最大化、終了などの操作ができる。ウィンドウの最上部には、そのウィンドウで表示されているアプリケーションの名称や文書のタイトルなどを表示するタイトルバーに、表示の最小化や最大化、終了を実行するためのボタンが用意されている。タイトルバーの下には、操作用のメニューを表示するメニューバー、ダイレクトに機能を呼び出すツールバーなどが用意されている。さらにその下には、アプリケーションの固有データや操作ボタンなどを表示するエリアを持ち、最下部にはアプリケーションの状態などを表示するステータスバーを持つ。
ウィンドウは、それぞれ一つのアプリケーションと対応している。ウィンドウごとに多種多様な機能が利用可能になっていることで、同時に起動している他のアプリケーションとは独立に、並行して操作を行うことができる。
ウィンドウは、同時に複数存在させることができる。並べ方として、互いに重ならないように並べるタイル表示、自由な位置に配置可能で重ねることもできるオーバラップ表示、一定間隔ずつずれながら重ねて表示されるカスケード表示、などの種類がある。
ウィンドウは、GUI(グラフィカルユーザーインターフェース)を実現する主要な要素の一つである。ウィンドウ内に表現された文書の内容が、印刷物と同じイメージで表現可能なシステムは、特にWYSIWYG(What You See Is What You Get)と呼ばれている。
ウィンドウを制御しているソフトウェアは、ウィンドウシステム(Window System)と呼ばれている。OSによってウィンドウシステムは異なる。主な種類としては、Unix系で用いられているX Window、Windows(OSと一体になっている)、Macintoshで用いられているAquaなどがある。また、Smalltalkのようなオブジェクト指向プログラミング環境下で、特にMVC(Model View Controller)モデルにおいては、ウィンドウは基本的な表示対象である。Windowsにおいては、プログラムを実行すると、プロセスに対して特定のハンドル値で識別されるウィンドウが付与される。ウィンドウに表示するには、ハンドルを取得し、描画APIを経由して描画を行う。あるウィンドウから別のウィンドウを呼び出す時、後で呼ばれたウィンドウが終了するまで他のウィンドウの操作ができないタイプをモーダル、逆に後で呼び出したウィンドウが終了しなくても他のウィンドウの操作ができるタイプをモードレスと呼ぶ。
| ウィンドウシステム: | アプリケーション切替ウィンドウ オーバーラップ オープン ウィンドウ ハードコピー 非アクティブウィンドウ 非アクティブウィンドウスクロール |
(window から転送)
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2025/12/27 07:16 UTC 版)
|
|
この記事には複数の問題があります。
|
ウィンドウ (英: window) とは、グラフィカルユーザーインターフェイス (GUI) を持つコンピュータのウィンドウシステムにおいて、ディスプレイなどのデバイス上で、各アプリケーションソフトウェアに与えられる視覚的領域のことである。個々のウィンドウは一般的に矩形または角丸矩形の形状を持つ。「ウインドウ」と表記されることもあるが、本記事では「ウィンドウ」で統一する。
窓からアプリケーションを覗いているような様子からこの名前が付けられた。マルチタスクオペレーティングシステム (OS) では複数のアプリケーションが同時に動作するため、ウィンドウでそれぞれのアプリケーションに画面領域を割り当て、ユーザーの操作で切り替えることができる必要がある。一般的なウィンドウシステムでは、ディスプレイ領域を単純に分割して各領域にウィンドウを2次元的に表示するだけでなく、それぞれのウィンドウが上下関係(Zオーダー)を持ち、任意の順序で疑似3次元的に重ね合わせができるようになっている。ウィンドウは木構造によって階層的に管理され、一般的にデスクトップ自身のウィンドウが基底ノードとなる。各ウィンドウ内に、さらに1つ以上の子ウィンドウを持つこともできる。各アプリケーションのプロセスは、一般的にトップレベルウィンドウ(デスクトップをオーナーすなわち所有者とする最上位のウィンドウ[1][2])を1つだけ持つが、必要に応じて複数のトップレベルウィンドウを持つこともできる。
選択されている状態のウィンドウをアクティブウィンドウ (active window)[注釈 1]、それ以外の全てのウィンドウは非アクティブウィンドウ (inactive window)[注釈 2] と呼ぶ。アクティブなウィンドウがZオーダーの最前面に表示されることが多いものの、必ずしもそうなるとは限らない。例えばデスクトップは特殊なウィンドウの1つとして実装されるが、デスクトップをアクティブにしても他のアプリケーションウィンドウは(最小化されていなければ)デスクトップよりも上にある状態となる。あるウィンドウに所有されている (owned) ウィンドウのZオーダーは所有者 (owner) ウィンドウよりも常に上に位置するため、モードレスウィンドウの場合は所有者ウィンドウをアクティブにしたとしても、所有者よりも前面に表示される[6]。モーダルウィンドウの場合は表示中に所有者ウィンドウをアクティブにすることができないため、この逆転現象は起こらない。またWindowsでは、HWND_TOPMOSTを使うことで、ウィンドウが非アクティブであっても最前面に表示されるように設定することも可能である[7]。Windows タスク マネージャーの「常に手前に表示」というオプションはこの機能を使用して実現されている。
ウィンドウはフォーカスを持つことができ、キーボード入力の情報はフォーカスを持つウィンドウに対して送られる。
主にパーソナルコンピュータ (PC) で使用されるデスクトップOSの場合、ほとんどのウィンドウシステムでは、トップレベルウィンドウを最小化することができ、デスクトップ領域から一時的にそれらのウィンドウを非表示にすることができる。ウィンドウが最小化されるとき、タスクバーに格納されるような遷移アニメーションが発生することが多い。ウィンドウに対応するタスクバー上のボタンやアイコンをクリックすることで、そのウィンドウを再表示することができる。
移動やリサイズ、最小化/最大化/クローズといったウィンドウの操作には、タイトルバーおよびその上に設けられたシステムコマンドボタンと、ウィンドウ枠(フレーム)を用いる。ウィンドウはキーボードでも操作できるように、通例ショートカットキーが用意されている。
一方モバイルOSの場合、マルチタスクであってもその多くは限定されたマルチウィンドウシステムとなっており、ウィンドウ最小化の操作ができない代わりに、利用していないアプリケーションはバックグラウンド状態になる。システム全体の負荷やバッテリー消費を抑えるなどの目的から、ユーザーに直接操作されておらず、画面にも表示されていないバックグラウンド状態のアプリケーションは、利用可能な機能や通信およびイベント受信などの動作に強い制限がある[8][9]。AndroidやChromeOSのように、ユーザーが自由にウィンドウサイズを変更することのできる、デスクトップOSに近いフリーフォームウィンドウモードをサポートするモバイル環境もある[10][11]。
「規格票の様式及び作成方法の規格(JIS Z 8301)」の2008年版までは「3音以上の場合には、語尾に長音符を付けない」と定めていた。これに従うと、「ウィンドー」は「ウィンド」となる。例えばJASO D406では、パワーウィンドウ(power window / powered window)は「パワーウィンドー」から転じて「パワーウィンド」と表記されている[12]。なお、JASO D504では、フロントガラス(風防ガラス)を意味するwindscreenは「ウインドスクリーン」と表記されている。しかし、「ウィンド」では「風」の意味を持つwindと紛らわしいということもあり、コンピュータ関連では「ウィンドウ」[13]または「ウインドウ」[14]と表記されることが多い。「ウィンドー」や「ウインドー」と表記されることは少ない。
日本語では英語をそのままカナ表記した外来語として「ウィンドウ」と言うことが多いが、他の言語では「窓」を意味する固有語が用いられるのがほとんどである。なお、日本語でも複合語に限っては「窓」(例:別窓、対話窓)を用いることもある。
マイクロソフトのオペレーティングシステムであるMicrosoft Windowsは、ウィンドウシステムにおけるウィンドウの複数形が名前の由来[15]である。なお、伝統的なUser32サブシステムのGUI部品(ウィジェット)はすべてウィンドウハンドル (HWND) を持ち、例えばボタンやラベルさえもウィンドウの1つとして存在し、Windows APIを使用してウィンドウハンドル経由で統一的に扱われる仕組みになっている。このウィンドウハンドルはプロセス透過であり、あるプロセスの持つウィンドウに対して、別のプロセスからウィンドウハンドル経由でメッセージを送信することで、そのウィンドウを操作することもできる。
マイクロソフト製のC++用ライブラリであるMFCおよびATLでは、HWNDをラップし、各ウィンドウオブジェクトを抽象化するCWndクラスやCWindowクラスが定義されている[16][17]。
固有名詞の分類