ウィンドウ

ウィンドウの要素

ウィンドウ (: window) とは、グラフィカルユーザーインターフェイス (GUI) を持つコンピュータのウィンドウシステムにおいて、ディスプレイなどのデバイス上で、各アプリケーションソフトウェアに与えられる視覚的領域のことである。個々のウィンドウは一般的に矩形または角丸矩形の形状を持つ。「ウインドウ」と表記されることもあるが、本記事では「ウィンドウ」で統一する。

概要

窓からアプリケーションを覗いているような様子からこの名前が付けられた。マルチタスクオペレーティングシステム (OS) では複数のアプリケーションが同時に動作するため、ウィンドウでそれぞれのアプリケーションに画面領域を割り当て、ユーザーの操作で切り替えることができる必要がある。一般的なウィンドウシステムでは、ディスプレイ領域を単純に分割して各領域にウィンドウを2次元的に表示するだけでなく、それぞれのウィンドウが上下関係(Zオーダー)を持ち、任意の順序で疑似3次元的に重ね合わせができるようになっている。ウィンドウは木構造によって階層的に管理され、一般的にデスクトップ自身のウィンドウが基底ノードとなる。各ウィンドウ内に、さらに1つ以上の子ウィンドウを持つこともできる。各アプリケーションのプロセスは、一般的にトップレベルウィンドウ(デスクトップをオーナーとする最上位のウィンドウ[1][2])を1つだけ持つが、必要に応じて複数のトップレベルウィンドウを持つこともできる。

選択されている状態のウィンドウをアクティブウィンドウ (active window)[注釈 1]、それ以外の全てのウィンドウは非アクティブウィンドウ (inactive window)[注釈 2] と呼ぶ。

ウィンドウはフォーカスを持つことができ、キーボード入力の情報はフォーカスを持つウィンドウに対して送られる。

主にパーソナルコンピュータ (PC) で使用されるデスクトップOSの場合、ほとんどのウィンドウシステムでは、トップレベルウィンドウを最小化することができ、デスクトップ領域から一時的にそれらのウィンドウを非表示にすることができる。ウィンドウが最小化されるとき、タスクバーに格納されるような遷移アニメーションが発生することが多い。ウィンドウに対応するタスクバー上のボタンやアイコンをクリックすることで、そのウィンドウを再表示することができる。

移動やリサイズ、最小化/最大化/クローズといったウィンドウの操作には、タイトルバーおよびその上に設けられたシステムコマンドボタンと、ウィンドウ枠(フレーム)を用いる。ウィンドウはキーボードでも操作できるように、通例ショートカットキーが用意されている。

一方モバイルOSの場合、マルチタスクであってもその多くは限定されたマルチウィンドウシステムとなっており、ウィンドウ最小化の操作ができない代わりに、利用していないアプリケーションはバックグラウンド状態になる。システム全体の負荷やバッテリー消費を抑えるなどの目的から、ユーザーに直接操作されておらず、画面にも表示されていないバックグラウンド状態のアプリケーションは、利用可能な機能や通信およびイベント受信などの動作に強い制限がある[6][7]AndroidChromeOSのように、ユーザーが自由にウィンドウサイズを変更することのできる、デスクトップOSに近いフリーフォームウィンドウモードをサポートするモバイル環境もある[8][9]

表記

工業分野やコンピュータ業界では古いJIS規格(旧日本工業規格、現日本産業規格)の影響から、用語を片仮名表記する際、最後の長音符は省略するという慣例がある。これに従うと、「ウィンドー」は「ウィンド」となる。例えばJASO D406では、パワーウィンドウpower window / powered window)は「パワーウィンドー」から転じて「パワーウィンド」と表記されている[10]。なお、JASO D504では、フロントガラス風防ガラス)を意味するwindscreenは「ウインドスクリーン」と表記されている。しかし、「ウィンド」では「」の意味を持つwindと紛らわしいということもあり、コンピュータ関連では「ウィンドウ」[11]または「ウインドウ」[12]と表記されることが多い。「ウィンドー」や「ウインドー」と表記されることは少ない。

日本語では英語をそのままカナ表記した外来語として「ウィンドウ」と言うことが多いが、他の言語では「窓」を意味する固有語が用いられるのがほとんどである。なお、日本語でも複合語に限っては「窓」(例:別窓、対話窓)を用いることもある。

Microsoft Windows

マイクロソフトオペレーティングシステムであるMicrosoft Windowsは、ウィンドウシステムにおけるウィンドウの複数形が名前の由来[13]である。なお、伝統的なUser32サブシステムのGUI部品(ウィジェット)はすべてウィンドウハンドル (HWND) を持ち、例えばボタンやラベルさえもウィンドウの1つとして存在し、Windows APIを使用してウィンドウハンドル経由で統一的に扱われる仕組みになっている。このウィンドウハンドルはプロセス透過であり、あるプロセスの持つウィンドウに対して、別のプロセスからウィンドウハンドル経由でメッセージを送信することで、そのウィンドウを操作することもできる。

マイクロソフト製のC++用ライブラリであるMFCおよびATLでは、HWNDをラップし、各ウィンドウオブジェクトを抽象化するCWndクラスやCWindowクラスが定義されている[14][15]

脚注

出典

注釈

  1. ^ 普通はシステム全体で1つのウィンドウのみに対して言う。また、基本的に全てのウィンドウ(2つ以上のウィンドウ)をアクティブウィンドウにする方法は無い。
  2. ^ 形容詞activeの対義語はinactiveである[3]。動詞形はactivateであり、「アクティブ化する」「活性化する」「有効化する」などの意味を持つ[4]が、こちらの対義語はdeactivateであり、「非アクティブ化する」「非活性化する」「不活性化する」「無効化する」などの意味を持つ[5]。なお、ウィンドウや付随するウィジェットを操作可能にするという意味での「有効化する」という動詞はenableであり、また操作不能にするという意味での「無効化する」という動詞はdisableである。

関連項目

操作関係

ウィンドウの親ノード

GUI関係