(57)【特許請求の範囲】
【請求項１】
中央演算処理部により制御されるモニタ装置のウィンドウ画面表示方法であって、メモリのワークエリアから該メモリにおける画面表示用データを格納する表示メモリエリアにデータをコピーして該コピーしたデータに基づいて画面上に複数のウィンドウ画面を表示するウィンドウ画面表示方法において、
前記中央演算処理部が、ウィンドウ画面毎に、ウィンドウ画面と他のウィンドウ画面との位置関係に基づいて、前記他のウィンドウ画面のうち該当するウィンドウ画面と重なって表示されるウィンドウ画面を選択してウィンドウ画面情報テーブルを作成し、作成したウィンドウ画面情報テーブルに、前記重なって表示されるウィンドウ画面のウィンドウ画面情報テーブルのアドレスを設定するテーブル作成・設定工程と、
前記中央演算処理部が、描画更新を要求された場合に、前記テーブル作成・設定工程において作成・設定された前記ウィンドウ画面情報テーブルに基づいて、描画更新の対象となる前記複数のウィンドウ画面が表示された際に該ウィンドウ画面に対して常に最下位に位置するベース画面において前記ウィンドウ画面によって隠されていない可視領域のみを、前記ベース画面のデータが格納された前記ワークエリアから前記表示メモリエリアに直接コピーするデータコピー工程と、
前記中央演算処理部が、前記データコピー工程でコピーしたデータに基づいた画面を表示させる表示工程と、
前記中央演算処理部が、前記画面上に表示された複数のウィンドウ画面のうち閉じるウィンドウ画面の前記ウィンドウ画面情報テーブルをそのウィンドウ画面情報テーブルの格納されたメモリエリアから解放し、前記閉じるウィンドウ画面のウィンドウ画面情報テーブルのアドレスを他の各ウィンドウ画面のウィンドウ画面情報テーブルから削除するリストアンチェイン工程と、
を含むことを特徴とするウィンドウ画面表示方法。
【請求項２】
前記テーブル作成・設定工程は、前記中央演算処理部が、１のウィンドウ画面および他のいずれか一つのウィンドウ画面のそれぞれの左上座標および右下座標に基づいて、ウィンドウ画面間の重なり状態を示す重なりパターンを分析するパターン分析工程と、
前記重なりパターンに基づいて前記１のウィンドウ画面における重なりエリアを算出する重なりエリア算出工程と、
を含むことを特徴とする請求項１に記載のウィンドウ画面表示方法。
【請求項３】
前記データコピー工程は、
前記中央演算処理部が、前記可視領域から一つ以上の分割矩形エリアを導出する矩形分割工程と、
前記矩形分割工程において導出された分割矩形エリアを前記中央演算処理部が前記分割矩形エリアの画面データが格納された前記ワークエリアから前記表示メモリエリアに直接コピーする分割矩形エリアデータコピー工程と、
を含むことを特徴とする請求項１に記載のウィンドウ画面表示方法。
【請求項４】
前記矩形分割工程は、前記中央演算処理部が、前記ベース画面の左上座標および右下座標と、前記ベース画面の属する画面の前記ウィンドウ画面情報テーブルによる重なりエリアの左上座標および右下座標と、に基づいて、前記ベース画面の分割状態を示す分割矩形パターンを決定し、前記分割矩形パターンに基づいて前記対象矩形エリアから前記コピーの対象となる一つ以上の分割矩形エリアを導出すること
を特徴とする請求項３に記載のウィンドウ画面表示方法。
【請求項５】
前記矩形分割工程は、前記中央演算処理部が、前記矩形分割工程によって得られた各分割矩形エリアに対してさらに矩形分割工程を再帰的に施すこと
を特徴とする請求項４に記載のウィンドウ画面表示方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プログラマブルコントローラなどを介してロボットや数値制御装置の状況をモニタし、かつウィンドウ画面表示機能を有するモニタ装置のウィンドウ画面表示方法に関するものである。
【０００２】
【従来の技術】
まず、従来のウィンドウ表示方法の構成について以下に説明する。図２８は従来の数値制御装置等に使用される電子操作盤の概略Ｈ／Ｗブロック図を示している。図２８において、ＣＰＵ２０１は、ＲＯＭ２０２に格納されたプログラムに基づいて、ＲＡＭ２０４（ＶＲＡＭ、以下表示メモリエリア）に格納された表示メモリエリアデータを出力装置２０５（液晶ディスプレイ、ＣＲＴ等）上に表示させる。ＲＡＭ２０４に格納される表示メモリエリアデータは、ＲＡＭ２０３（ＤＲＡＭ、以下描画用ワークメモリ）に一時的に格納された描画データから構築される。
【０００３】
上記描画用ワークメモリには、通常、表示可能な最大のサイズを有しかつ複数の表示された画面に対して常に最下位に位置する画面（以下ベース画面）および、そのベース画面上に重なって表示されるウィンドウ画面（その表示されたウィンドウ画面上に更に重なって表示されるウィンドウ画面を含む）に対してそれぞれ動画用ワークエリア、静止画用ワークエリアおよびメインワークエリア、の３種類のメモリエリアが存在している。
【０００４】
動画用ワークエリアは、数値制御装置等に搭載されるシーケンサＣＰＵに備わり、かつ制御対象からもたらされる種々の観測値（その観測値に適切な演算を施して得られる結果を含む）を画面上の所定の位置において表示する数値表示機能、またはその観測値の表示に関連した文字列を表示する文字列表示機能、および同じく観測値に関連した図形部品を表示する部品表示機能等の、経時的に変化し、更新が頻繁に行われる可能性のある描画データ（以下動画データ）を格納するメモリエリアである。また、動画用ワークエリアは、ベース画面およびウィンドウ画面に対してそれぞれ確保され、以下それぞれをベース画面動画用ワークエリアおよびウィンドウ画面動画用ワークエリアと称する。
【０００５】
静止画用ワークエリアは、画面上の静止画データを格納するメモリエリアであり、ベース画面およびウィンドウ画面に対してそれぞれ確保され、以下それぞれをベース画面静止画用ワークエリアおよびウィンドウ画面静止画用ワークエリアと称する。メインワークエリアは、動画データと静止画データとが合成された描画データを格納するメモリエリアであり、ベース画面およびウィンドウ画面に対してそれぞれ確保され、以下それぞれをベース画面メインワークエリアおよびウィンドウ画面メインワークエリアと称する。
【０００６】
ここで、ベース画面上に同時に表示されるウィンドウ画面の最大枚数を１とした場合、描画用ワークメモリには、ベース画面およびウィンドウ画面にそれぞれ上記した３種類のメモリエリアが割り当てられる。よって、この場合の描画用ワークメモリの概略メモリマップは、図２９に示すように、ベース画面メインワークエリア、ベース画面動画用ワークエリア、ベース画面静止画用ワークエリア、ウィンドウ画面メインワークエリア、ウィンドウ画面動画用ワークエリアおよびウィンドウ画面静止画用ワークエリアの合計６つのメモリエリアから構成される。
【０００７】
以下に、ベース画面上に同時に表示されるウィンドウ画面の最大枚数を１とした場合における従来のウィンドウ表示方法を説明する。まず、ベース画面メインワークエリアおよびウィンドウ画面メインワークエリアが生成されるまでの手順を、図３０および図３１を用いて説明する。
【０００８】
シーケンサＣＰＵから発せられる命令、または電子操作盤上に配置されている画面切換えスイッチの操作によって、ベース画面への画面切換え要求、すなわちベース画面上に描画しようとする所望の描画データを表示メモリエリアデータにコピーする要求が生じた場合、その所望の描画データのうちの静止画データすべてをベース画面静止画用ワークエリアに書き込む（図３０の符号４０１の示す処理に相当）。
【０００９】
つぎに、ベース画面静止画用ワークエリアに書き込まれた静止画データをベース画面静止画用ワークエリアからベース画面動画用ワークエリアおよびベース画面メインワークエリアにコピーする（図３０の符号４０２および４０３の示す処理に相当）。続いて、数値制御装置の制御対象からもたらされる種々の観測値、その観測値の表示に関連した文字列および図形部品をシーケンサＣＰＵから認識し、所定の描画形式に基づいてベース画面動画用ワークエリアの所定位置に書き込む（図３１の符号５０１の示す処理に相当）。
【００１０】
つぎに、ベース画面動画用ワークエリアの所定位置（以下対象矩形エリア）に書き込まれた動画データをベース画面メインワークエリアにコピーする（図３１の符号５０２の示す処理に相当）。ここで、動画データの再描画要求を受けた際には、ベース画面静止画用ワークエリアにおいて対象矩形エリアに存在する静止画データをベース画面にコピーすることにより、過去の動画データの背景に存在する静止画データを保証しながら、対象となる動画データの消去が行われる（図３１の符号５０３の示す処理に相当）。
【００１１】
以上のように、ベース画面への画面切換え要求に対するベース画面メインワークエリアの生成が達成される。ウィンドウ画面への画面切換え要求に対するウィンドウ画面メインワークエリアの生成もまた、上述した説明において「ベース画面」を「ウィンドウ画面」に置き換えることによって同様に達成される。従って、動画データの描画処理は、図３１の５０３に示す旧動画データ消去処理、図３１の５０１に示す新動画データ描画、図３１の５０２に示す新動画データコピーの３ステップにて処理される。
【００１２】
つぎに、上述した説明において生成されたベース画面メインワークエリアおよびウィンドウ画面メインワークエリアの合成処理を、図３２を用いて説明する。図３２において、左上座標Ｐｔ１および右下座標Ｐｂ３によって矩形として定められるベース画面上に、左上座標Ｐｔ０および右下座標Ｐｂ０によって矩形として定められるウィンドウ画面が重なって表示される場合を考える。先ず、ウィンドウ画面によって隠されないベース画面の領域を複数のコピー対象矩形に分割し、矩形数分の左上、右下座標を決定する（図３２の符号６０１の示す処理に相当）。図３２においては、矩形６０２、矩形６０３、矩形６０４および矩形６０５の４つのコピー対象矩形に分割され、それぞれ左上座標／右下座標として、Ｐｔ１／Ｐｂ１、Ｐｔ２／Ｐｂ２、Ｐｔ３／Ｐｂ３およびＰｔ４／Ｐｂ４が特定される。なお、以上における座標Ｐｔ０／Ｐｂ０、Ｐｔ１／Ｐｂ１、Ｐｔ２／Ｐｂ２、Ｐｔ３／Ｐｂ３およびＰｔ４／Ｐｂ４は、ベース画面の例えば左上座標、すなわちＰｔ１を原点とした絶対座標である。
【００１３】
つぎに、分割された４つのコピー対象矩形を、特定された左上座標／右下座標にそれぞれ相当する表示メモリエリアの表示位置にコピーする（図３２の符号６０６の示す処理に相当）。最後に、ウィンドウ画面ワークエリアのデータを、特定された左上座標／右下座標すなわちＰｔ０／Ｐｂ０に相当する表示メモリエリアの表示位置にコピーする（図３２の符号６０７の示す処理に相当）。
【００１４】
以上のように、従来の表示制御方法によれば、ベース画面上に重ねてウィンドウ画面を表示する場合、表示されるウィンドウ画面の左上座標および右下座標を元に、そのウィンドウ画面によって隠されないベース画面の領域すなわち可視領域を複数の矩形に分割し、分割された複数の矩形と、表示されるウィンドウ画面とをそれぞれ特定された座標に相当する表示メモリエリアの表示位置にコピーすることによって、ウィンドウ画面の表示を達成している。実際には、上記３つの処理からなるベース画面メインワークエリアおよびウィンドウ画面メインワークエリアの合成処理は、描画更新の発生有無に関わらず、常に１００ｍｓ周期で実施される。
【００１５】
【発明が解決しようとする課題】
しかしながら、以上に説明したような従来のウィンドウ表示方法によれば、表示される１画面につき３画面分のメモリエリア（例えば１ウィンドウ画面につきウィンドウ画面メインワークエリア、ウィンドウ画面静止画用ワークエリアおよびウィンドウ画面動画用ワークエリアの３画面分のメモリエリア）を必要とするため、すでにＨ／Ｗ資源を圧迫すなわち使用メモリが増大するという問題が生じており、今後の電子操作盤の必須機能である、複数枚のウィンドウ画面を表示するマルチウィンドウ表示機能を、従来のウィンドウ表示方法によって提供した場合、さらにＨ／Ｗ資源圧迫の問題は大きくなる。
【００１６】
本発明は、描画ワークエリアとして使用されるメモリサイズを低減し、かつマルチウィンドウ表示機能に適用可能なウィンドウ表示方法を得ることを目的とする。
【００１７】
【課題を解決するための手段】
上述の目的を達成するために、この発明に係るウィンドウ画面表示方法は、中央演算処理部により制御されるモニタ装置のウィンドウ画面表示方法であって、メモリのワークエリアから該メモリにおける画面表示用データを格納する表示メモリエリアにデータをコピーして該コピーしたデータに基づいて画面上に複数のウィンドウ画面を表示するウィンドウ画面表示方法において、前記中央演算処理部が、ウィンドウ画面毎に、ウィンドウ画面と他のウィンドウ画面との位置関係に基づいて、前記他のウィンドウ画面のうち該当するウィンドウ画面と重なって表示されるウィンドウ画面を選択してウィンドウ画面情報テーブルを作成し、作成したウィンドウ画面情報テーブルに、前記重なって表示されるウィンドウ画面のウィンドウ画面情報テーブルのアドレスを設定するテーブル作成・設定工程と、前記中央演算処理部が、描画更新を要求された場合に、前記テーブル作成・設定工程において作成・設定された前記ウィンドウ画面情報テーブルに基づいて、描画更新の対象となる前記複数のウィンドウ画面が表示された際に該ウィンドウ画面に対して常に最下位に位置するベース画面において前記ウィンドウ画面によって隠されていない可視領域のみを、前記ベース画面のデータが格納された前記ワークエリアから前記表示メモリエリアに直接コピーするデータコピー工程と、前記中央演算処理部が、前記データコピー工程でコピーしたデータに基づいた画面を表示させる表示工程と、前記中央演算処理部が、前記画面上に表示された複数のウィンドウ画面のうち閉じるウィンドウ画面の前記ウィンドウ画面情報テーブルをそのウィンドウ画面情報テーブルの格納されたメモリエリアから解放し、前記閉じるウィンドウ画面のウィンドウ画面情報テーブルのアドレスを他の各ウィンドウ画面のウィンドウ画面情報テーブルから削除するリストアンチェイン工程と、を含むことを特徴としている。
【００１８】
この発明によれば、処理対象とするウィンドウ画面と他のウィンドウ画面との位置関係が常にウィンドウ画面情報テーブルに格納されており、新規に開かれるウィンドウ画面または閉じられるウィンドウ画面と、他のすでに表示されているウィンドウ画面との位置関係が複雑な処理を必要とせずに、このウィンドウ画面情報テーブルのみの参照および更新によって達成される。そして、この発明によれば、可視領域のみを表示メモリエリアにコピーするため、コピー処理量が大幅に削減され、表示処理のスループットが大幅に向上する。また、閉じられるウィンドウ画面に対するウィンドウ画面情報テーブル上のリンクを解除し、使用されないメモリエリアの開放が可能になる。
【００１９】
つぎの発明に係るウィンドウ画面表示方法は、テーブル作成・設定工程は、中央演算処理部が、１のウィンドウ画面および他のいずれか一つのウィンドウ画面のそれぞれの左上座標および右下座標に基づいて、ウィンドウ画面間の重なり状態を示す重なりパターンを分析するパターン分析工程と、重なりパターンに基づいて１のウィンドウ画面における重なりエリアを算出する重なりエリア算出工程と、を含むことを特徴としている。
【００２０】
この発明によれば、予め定められたパターンとのマッチングを行うことで、１のウィンドウ画面と他のウィンドウ画面との重なりエリアを高速に求めることができ、ウィンドウ画面情報テーブルの作成が迅速に行える。
【００２５】
つぎの発明に係るウィンドウ画面表示方法は、データコピー工程は、中央演算処理部が、可視領域から一つ以上の分割矩形エリアを導出する矩形分割工程と、矩形分割工程において導出された分割矩形エリアを中央演算処理部が分割矩形エリアの画面データが格納されたワークエリアから表示メモリエリアに直接コピーする分割矩形エリアデータコピー工程と、を含むことを特徴としている。
【００２６】
この発明によれば、可視領域を処理し易い矩形エリアに分割することによって、表示メモリエリアへの迅速なコピーが可能になる。
【００２７】
つぎの発明に係るウィンドウ画面表示方法は、矩形分割工程は、中央演算処理部が、ベース画面の左上座標および右下座標と、ベース画面の属する画面のウィンドウ画面情報テーブルによる重なりエリアの左上座標および右下座標と、に基づいて、ベース画面の分割状態を示す分割矩形パターンを決定し、分割矩形パターンに基づいて対象矩形エリアからコピーの対象となる一つ以上の分割矩形エリアを導出することを特徴としている。
【００２８】
この発明によれば、可視領域の矩形エリアへの分割を予め設定された分割矩形パターンとのマッチングにより決定することによって、余分な処理を排除し、迅速な矩形エリアの導出が可能になる。
【００２９】
つぎの発明に係るウィンドウ画面表示方法は、矩形分割工程は、中央演算処理部が、矩形分割工程によって得られた各分割矩形エリアに対してさらに矩形分割工程を再帰的に施すことを特徴としている。
【００３０】
この発明によれば、矩形分割処理によって順次導出される一時的な分割矩形エリアに対して、新たに定められる処理を必要とせずに、再び矩形分割処理を利用することによって、ＲＯＭ（またはＲＡＭ）に格納されるプログラムにおける命令コードを節約することができ、さらなる迅速な分割矩形エリアの導出が可能になる。
【００３１】
【発明の実施の形態】
以下、本発明に係るウィンドウ画面表示方法の実施の形態を図面を参照して詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００３２】
図１に本発明に係るウィンドウ表示方法において、描画ワークエリアにおける各表示画面へのメモリエリアの割り当ておよび使用方法を示す。従来のウィンドウ表示方法によって提供される描画ワークエリア上の各表示画面へのメモリエリアの割り当てが、ベース画面メインワークエリア、ウィンドウ画面メインワークエリアと称するそれぞれ表示される画面サイズ分のメインワークエリアを必要としていたのに対し、この発明では、これらメインワークエリアを排除し、各画面において、静止画用ワークエリアおよび動画用ワークエリアから表示メモリエリアに直接に静止画データおよび、再描画要求のあった対象矩形エリアのデータすなわち動画データのコピー処理を行う。
【００３３】
この場合、再描画要求が発生し、対象矩形エリアをそのまま表示メモリエリアにコピーした時に、図２に示すように対象矩形エリアの存在する画面（この場合、ベース画面）の上位にすでに開いているウィンドウ画面とのオーバーラップが生じる可能性がある。よって、すでに開いているすべてのウィンドウ画面と、これからコピーしようとする対象矩形エリアとの重なり関係を認識する必要がある。
【００３４】
そこで、本発明においては、対象矩形エリアとすでに開いているすべてのウィンドウ画面との重なり関係を認識する為の元情報となる、ウィンドウ画面の現在の表示位置およびサイズを各ウィンドウ画面毎に記録されたウィンドウ画面情報テーブルを作成し、作成されたウィンドウ画面情報テーブルに基づいて対象矩形エリアを分割して１乃至４個の分割矩形エリアを導出し、導出された分割矩形エリアをそれぞれ表示メモリエリアにコピーする。
【００３５】
現在表示されているすべてのウィンドウ画面の上下位置関係は、例えばベース画面上にウィンドウ画面１、ウィンドウ画面２およびウィンドウ画面３の３つのウィンドウ画面が表示されている場合、図３に示すように表現される。図３において、矢印８０１は、ベース画面の上にウィンドウ画面１が位置していることを示し、矢印８０２は、ウィンドウ画面１の下にベース画面が存在することを示す。また、矢印８０３は、ウィンドウ画面１の上にウィンドウ画面２が位置していることを示し、矢印８０４は、ウィンドウ画面２の下にウィンドウ画面１が存在することを示す。また、矢印８０５は、ウィンドウ画面１の上にウィンドウ画面３が位置していることを示し、矢印８０６は、ウィンドウ画面３の下にウィンドウ画面１が存在することを示す。
【００３６】
また、矢印８０７は、ウィンドウ画面２の上にウィンドウ画面３が位置していることを示し、矢印８０８は、ウィンドウ画面３の下にウィンドウ画面２が存在することを示す。また、矢印８０９は、ベース画面の上にウィンドウ画面３が位置していることを示し、矢印８１０は、ウィンドウ画面３の下にベース画面が存在することを示す。更に、矢印８１１は、ベース画面の上にウィンドウ画面２が位置していることを示し、矢印８１２は、ウィンドウ画面２の下にベース画面が存在することを示している。
【００３７】
よって、図３に示されたウィンドウ画面の上下位置関係表現によれば、ベース画面、ウィンドウ画面１、ウィンドウ画面２およびウィンドウ画面３の順に下から画面が重なっており、ベース画面が最下位画面となり、ウィンドウ画面３が最上位画面となっていることがわかる。このようなウィンドウ画面の上下位置関係は、ウィンドウ画面情報テーブルを２次元の双方向リストという形で作成し、作成されたウィンドウ画面情報テーブルはさらに他のウィンドウ画面のウィンドウ画面情報テーブルとリンクされることにより、実現できる。
【００３８】
ウィンドウ画面情報テーブルの更新は、新規にウィンドウ画面が開かれた時、および表示されていたウィンドウ画面が閉じられた時に行われ、常に最新のウィンドウ画面位置関係すなわち重なり情報が設定される。
【００３９】
再描画要求が発生した時の処理は、ウィンドウ画面の上下関係を示したウィンドウ画面情報テーブルによってリンクされる他の各ウィンドウ画面情報テーブルを参照し、再描画される対象矩形エリアを、その対象矩形エリアの上位に重なって表示されているウィンドウ画面との重なり情報を元にして複数の矩形エリアに分割する。この分割処理を再帰的に行うことによって、複数枚のウィンドウ画面が表示されている場合に対しても対象矩形エリアの再描画が達成される。
【００４０】
最終的に分割されて表示メモリエリアへのコピーが必要であると判断された分割矩形エリアをその分割矩形エリア数分、表示メモリエリアの所定の表示位置にコピーする処理が行われる。
【００４１】
ウィンドウ画面情報テーブルの更なる詳細は、図４においてＣ言語の構造体変数宣言形式により示される。ＷＩＮＤ＿ＳＣＲＣ  ＊ｕｐｐｅｒ［］は、対象矩形エリアの属する画面の上位に表示されているすべてのウィンドウ画面におけるウィンドウ画面情報テーブルの先頭アドレスを格納するエリアであり、ＷＩＮＤ＿ＳＣＲＣ  ＊ｌｏｗｅｒ［］は下位に表示されているすべてのウィンドウ画面におけるウィンドウ画面情報テーブルの先頭アドレスを格納するエリアである。
【００４２】
ここでは、ｕｐｐｅｒ［］およびｌｏｗｅｒ［］は、対象矩形エリアの属する画面に対して、上位および下位にそれぞれ同時に開くことのできるウィンドウ画面の最大枚数を５枚（要素０〜４）と定義された配列変数であり、ベース画面を一つのウィンドウ画面であると考えた場合、対象矩形エリアの属する画面を含めて合計１１枚のウィンドウ画面を同時に開くことが可能となっている。
【００４３】
また、図９の符号９０２に示されたＷＩＮＤ＿ＰＡＬ ｄｉｓｐは、表示可能な全エリア（ベース画面に相当する場合が多い）の左上を原点とした、対象となるウィンドウ画面または対象矩形エリアの表示されている左上、右下絶対座標を格納するエリアである。また、図９の符号９０３に示されたＸＹＢＵＦ ｓｉｚｅは対象となるウィンドウ画面または対象矩形エリアのサイズを格納するエリアである。
【００４４】
ＷＩＮＤ＿ＰＡＬ ｃｒｏｓｓ［］は対象となるウィンドウ画面または対象矩形エリアの上位に表示されているすべてのウィンドウ画面との重なり部分を、表示可能な全エリアの左上を原点とした、左上、右下の絶対座標を格納するエリアである。ｃｒｏｓｓ［］は、同時に開くことができるウィンドウ画面の最大枚数分の要素を持つ配列変数として宣言する。なお、対象となるウィンドウ画面または対象矩形エリアに対して、重なりが生じる全ウィンドウ画面において最下位に位置するウィンドウ画面から順にｃｒｏｓｓ［］に格納される。
【００４５】
つぎに、ウィンドウ画面が新規に開かれた際のウィンドウ画面情報テーブルの更新処理について説明する。ウィンドウ画面が新規に開かれた時、ウィンドウ画面情報テーブルの更新のために図５に示される処理が実行される。まず、図５において、新規に開かれるウィンドウ画面のためのウィンドウ画面情報テーブルを取得する（ステップＳ１００１）。
【００４６】
つぎに、開かれようとするウィンドウ画面の表示位置を４つの変数すなわち左上座標をｄｉｓｐ．ｔｘ、ｄｉｓｐ．ｔｙに、右下座標をｄｉｓｐ．ｂｘ、ｄｉｓｐ．ｂｙに格納し、更に、そのウィンドウ画面の横および縦サイズをｄｉｓｐ．ｓｘ、ｄｉｓｐ．ｓｙの２つの変数に格納する（ステップＳ１００２）。続いて、新規にウィンドウ画面が開かれることによって変化する、すでに開かれている他のウィンドウ画面との上下関係および重なり関係を再認識し、それら他のウィンドウ画面のウィンドウ画面情報テーブルとのリンクを行う（ステップＳ１００３）。
【００４７】
〔ウィンドウ画面情報テーブル作成（重なりチェックおよび他ウィンドウ画面情報テーブルとのリンク）〕
図５のステップＳ１００３の重なりチェックおよび他ウィンドウ画面情報テーブルとのリンクを行うサブルーチンの処理詳細を、図６においてＨＣＰにより示す。
【００４８】
図６において、重なりチェックおよび他ウィンドウ画面情報テーブルとのリンク処理を行うサブルーチンへの引数は、ステップＳ１１０１に示すように、第１引数を、カレントウィンドウ画面すなわち対象矩形エリアのウィンドウ画面情報テーブルの先頭アドレスとし、第２引数を、比較対象ウィンドウ画面すなわち新規に開かれるウィンドウ画面のすでに取得されたウィンドウ画面情報テーブルの先頭アドレスとする。第１引数は、実際には、ベース画面の情報テーブル先頭アドレスを示し、ベース画面の表示データに基づいて対象矩形エリアの表示位置が特定される。
【００４９】
図６に示されるＨＣＰにおいて、変数ｉは、前述した同時表示可能なウィンドウ画面の最大枚数に至るまでインクリメント（ここではｉ＝０からｉ＝４まで）される他のすでに表示されているウィンドウ画面のウィンドウ画面情報テーブルを示す要素変数である。要素変数の初期値はｉ＝０であり、ここで、カレントウィンドウ画面に対して、図４の符号９０１に示した構造体を型名とした変数ｗｓｃｒｃ［０］を割り当てると、カレントウィンドウ画面のウィンドウ画面情報テーブルにおいて、カレントウィンドウ画面に重なって表示された最下位に位置するウィンドウ画面のウィンドウ画面情報テーブルの先頭アドレスは、ｗｓｃｒｃ［０］．ｕｐｐｅｒ［０］と表される。
【００５０】
そこで、図６に示されるＨＣＰのステップＳ１１０２において、まず、カレントウィンドウ画面情報テーブルにおいて重なって表示されるｉ番目のウィンドウ画面のウィンドウ画面情報テーブルの先頭アドレス、すなわちｗｓｃｒｃ［０］．ｕｐｐｅｒ［ｉ］にＮＵＬＬコードが格納され、かつそのウィンドウ画面情報テーブルがすでにチェックされたかを示すチェック済みフラグにＯＦＦを示すコードが格納されているかを判定し、それら条件を共に満たす場合は、表示されているすべてのウィンドウ画面と新規に開かれるウィンドウ画面との重なりエリアを特定する、後述する重なりチェックおよび重なりエリア算出を行うサブルーチン（ステップＳ１１０３）に処理が移され、上記したチェック済みフラグにＯＮを示すコードが格納される。
【００５１】
ｗｓｃｒｃ［０］．ｕｐｐｅｒ［ｉ］にＮＵＬＬコードが格納されていない場合すなわちｉ番目の重なりウィンドウ画面が存在する場合（ステップＳ１１０４）は、第１引数をｉ番目の重なりウィンドウ画面のウィンドウ画面情報テーブルの先頭アドレスとし、第２引数を前述した比較対象ウィンドウ画面のすでに取得されたウィンドウ画面情報テーブルの先頭アドレスとして、再び重なりチェックおよび他ウィンドウ画面情報テーブルとのリンクを行うサブルーチン（ステップＳ１１０５）に処理が移される。
【００５２】
よって、カレントウィンドウ画面に重なって表示されているウィンドウ画面すなわち上位ウィンドウ画面として登録されているウィンドウ画面を再帰的に順次走査し、重なりチェックおよび重なりエリア算出を行うサブルーチンによって、カレントウィンドウ画面に対する他の表示されているすべてのウィンドウ画面の重なり情報を抽出できる。
【００５３】
〔重なりチェックおよび重なりエリア算出〕
続いて、重なりチェックおよび重なりエリア算出を行うサブルーチンの処理の詳細を図７においてＨＣＰにより示す。
【００５４】
重なりチェックおよび重なりエリア算出を行うサブルーチンへの引数は、ステップＳ１１０３に示すように、第１引数を、カレントウィンドウ画面すなわち対象矩形エリアのウィンドウ画面情報テーブルの先頭アドレスとし、第２引数を、比較対象ウィンドウ画面すなわち新規に開かれるウィンドウ画面のすでに取得されたウィンドウ画面情報テーブルの先頭アドレスとし、第３引数を、他のすでに表示されているウィンドウ画面のウィンドウ画面情報テーブルを示す要素変数ｉとする。重なりチェックおよび重なりエリア算出を行うサブルーチンの処理内容は、さらに以下のパターン分析（ステップＳ１２０１）および分割座標セット（ステップＳ１２０２）のサブルーチンによって構成される。
【００５５】
〔パターン分析〕
ステップＳ１１０３において得られる各引数のうち、カレントウィンドウ画面のウィンドウ画面情報テーブルの先頭アドレスおよび比較対象ウィンドウ画面のウィンドウ画面情報テーブルの先頭アドレスを図７のステップＳ１２０１に示されるパターン分析サブルーチンのそれぞれ第２引数および第３引数として用いる。パターン分析サブルーチンは、各ウィンドウ画面のウィンドウ画面情報テーブルに格納された表示位置情報より、表示されているウィンドウ画面間における重なりパターンを決定し、決定したパターンを第１引数として出力するサブルーチンである。
【００５６】
ここで、ステップＳ１２０１におけるパターン分析の概要を図８および図９を用いて説明する。まず、図８において、表示可能な全エリア（この場合、ベース画面に相当）の左上を原点とし、左上の絶対座標を（Ａｘ，Ａｙ）、および右下の絶対座標を（Ｂｘ，Ｂｙ）として定められるカレントウィンドウ画面（対象矩形エリア）と、左上の絶対座標を（Ｓｘ，Ｓｙ）、および右下の絶対座標を（Ｅｘ，Ｅｙ）として定められる比較対象ウィンドウ画面が同時に表示され、特にカレントウィンドウ画面の一部に比較対象ウィンドウ画面が重なって表示される場合を考える。
【００５７】
カレントウィンドウ画面の一部に比較対象ウィンドウ画面が重なって表示される場合の基本重なりパターンとして、Ｅｙ＜Ｂｙ（パターンＡ）、Ａｙ＜Ｓｙ（パターンＢ）、Ａｘ＜Ｓｘ（パターンＣ）およびＥｘ＜Ｂｘ（パターンＤ）の４つのパターンが存在する。また、特別な重なりパターンとして、上記した４つの基本重なりパターンの条件を満たさず、かつカレントウィンドウ画面に比較対象ウィンドウ画面が重なって表示されるパターン（パターンＹ）が存在する。他に、カレントウィンドウ画面に比較対象ウィンドウ画面が重ならないパターン（パターンＸ）が存在する。図９において、４つの基本重なりパターン（パターンＡ〜Ｄ）をグループ１とし、パターンＸをグループ２、パターンＹをグループ３として示している。
【００５８】
以上の４つの基本重なりパターンの重なり条件を組み合わせることによって、その他の１１通りの重なりパターンが考えられる。図９において、パターンＣかつパターンＢの重なり条件を満たすパターン（以下、パターンＣ＆＆Ｂのように表記）、パターンＢ＆＆Ｄ、パターンＤ＆＆Ａ、パターンＡ＆＆Ｃ、パターンＣ＆＆ＤおよびパターンＢ＆＆Ａをグループ４とし、パターンＣ＆＆Ｂ＆＆Ｄ、パターンＢ＆＆Ｄ＆＆Ａ、パターンＣ＆＆Ｄ＆＆ＡおよびパターンＣ＆＆Ｂ＆＆Ａをグループ５、パターンＡ＆＆Ｂ＆＆Ｃ＆＆Ｄをグループ６として示している。
【００５９】
図９に示された合計１７通りの重なりパターンを元に、パターン分析サブルーチンの処理詳細を、図１０に示されたＨＣＰにより説明する。図９において、ステップＳ１２０１のパターン分析ルーチンは、第２引数のカレントウィンドウ画面のウィンドウ画面情報テーブルの先頭アドレスによって得られるカレントウィンドウ画面の位置情報すなわち左上座標（Ａｘ，Ａｙ）および右下座標（Ｂｘ，Ｂｙ）、および第３引数の比較対象ウィンドウ画面のウィンドウ画面情報テーブルの先頭アドレスによって得られる比較対象ウィンドウ画面の位置情報すなわち左上座標（Ｓｘ，Ｓｙ）および右下座標（Ｅｘ，Ｅｙ）を元に、図９に示した１７通りのパターンから該当する重なりパターンを決定し、決定したパターン種を第１引数（以下、ｐａｔｎｕｍ）として格納する。
【００６０】
第１引数ｐａｔｎｕｍは、初期値として０が格納されている。まず、カレントウィンドウ画面の右下Ｘ座標すなわちＢｘと比較対象ウィンドウ画面の左上Ｘ座標すなわちＳｘとの関係Ｂｘ＜Ｓｘ、カレントウィンドウ画面の左上Ｘ座標すなわちＡｘと比較対象ウィンドウ画面の右下Ｘ座標すなわちＥｘとの関係Ａｘ＞Ｅｘ、カレントウィンドウ画面の左上Ｙ座標すなわちＡｘと比較対象ウィンドウ画面の右下Ｙ座標すなわちＥｙとの関係Ａｙ＞Ｅｙ、およびカレントウィンドウ画面の右下Ｙ座標すなわちＢｙと比較対象ウィンドウ画面の左上Ｙ座標すなわちＳｙとの関係Ｂｙ＜Ｓｙの４つの関係のいずれかが満たされる場合（ステップＳ１５０１）、該当する重なりパターンをパターンＸすなわち重なり無しと決定し、ｐａｔｎｕｍにパターンＸを示すコードを格納して、パターン分析の処理を終了する。
【００６１】
ステップＳ１５０１における条件を満たさない場合は、続いてステップＳ１５０２においてＢｙ＞Ｅｙの関係を満たすかを判定し、Ｂｙ＞Ｅｙの関係を満たす場合はｐａｔｎｕｍにすでに格納されているコードとパターンＡを示すコードとの論理積を行い、その結果をさらにｐａｔｎｕｍに格納する。つぎにステップＳ１５０３においてＡｙ＜Ｓｙの関係を満たすかを判定し、Ａｙ＜Ｓｙの関係を満たす場合はｐａｔｎｕｍにすでに格納されているコードとパターンＢを示すコードとの論理積を行い、その結果をさらにｐａｔｎｕｍに格納する。
【００６２】
以降同様に、ステップＳ１５０４においてＡｘ＜Ｓｘの関係を満たすかを判定して、Ａｘ＜Ｓｘの関係を満たす場合はｐａｔｎｕｍにすでに格納されているコードとパターンＣを示すコードとの論理積を行い、その結果をさらにｐａｔｎｕｍに格納し、ステップＳ１５０５においてＢｘ＞Ｅｘの関係を満たすかを判定して、満たす場合はｐａｔｎｕｍにすでに格納されているコードとパターンＤを示すコードとの論理積を行い、その結果をさらにｐａｔｎｕｍに格納する。
【００６３】
そして、最後に、ｐａｔｎｕｍに格納されたコードが初期値である０を示すならば（ステップＳ１５０6）、以上のステップＳ１５０１〜Ｓ１５０５における関係をどれも満たさなかったことになり、ｐａｔｎｕｍにパターンＹを示すコードを格納して、パターン分析の処理を終了し、分割座標セットサブルーチンに処理が移る。
【００６４】
以上に説明したパターン分析サブルーチンによって、カレントウィンドウ画面と比較対象ウィンドウ画面との位置関係を、図９に示した１７通りの重なりパターンから特定することが可能となる。
【００６５】
なお、パターン分析の処理の終了後、ｐａｔｎｕｍにパターンＸの示すコードが格納されている場合すなわちカレントウィンドウ画面と比較対象ウィンドウ画面との重なり領域が存在しない場合は、以降の分割座標セットサブルーチンにおける処理は必要なく、重なりチェックおよび重なりエリア算出処理を行うサブルーチン（図７のステップＳ１１０３）における処理を終了する。
【００６６】
〔分割座標セット〕
つぎに、分割座標セットサブルーチンの処理詳細を、図１１、１２および１３に示されたＨＣＰにおいて説明する。図６のステップＳ１１０３において得られる各引数のうち、カレントウィンドウ画面のウィンドウ画面情報テーブルの先頭アドレス、比較対象ウィンドウ画面のウィンドウ画面情報テーブルの先頭アドレスおよび他のすでに表示されているウィンドウ画面のウィンドウ画面情報テーブルを示す要素変数ｉを図７のステップＳ１２０２に示される分割座標セットサブルーチンのそれぞれ第２引数、第３引数および第４引数として用い、さらにパターン分析サブルーチンによって特定された重なりパターンの示すコードを第１引数として用いる。
【００６７】
分割座標セットサブルーチンは、第１引数の示すパターンコード（ｐａｔｎｕｍ）を元に、カレントウィンドウ画面と、第４引数の要素変数ｉの示す比較対象ウィンドウ画面との重なり領域の左上、右下の絶対座標をｃｒｏｓｓ［ｉ］に格納するサブルーチンである。
【００６８】
図１１において、まず、パターンコードがパターンＡ＆＆Ｂ＆＆Ｃ＆＆Ｄを示す場合（ステップＳ１６０１）は、比較対象ウィンドウ画面がそのままカレントウィンドウ画面との重なり領域となるために、ｃｒｏｓｓ［ｉ］．ｔｘ、ｃｒｏｓｓ［ｉ］．ｔｙ、ｃｒｏｓｓ［ｉ］．ｂｘ、ｃｒｏｓｓ［ｉ］．ｂｙにそれぞれ、比較対象ウィンドウ画面の左上Ｘ座標、左上Ｙ座標、右下Ｘ座標、右下Ｙ座標がセットされる。
【００６９】
パターンコードがパターンＣ＆＆Ｂ＆＆Ｄを示す場合（ステップＳ１６０２）は、ｃｒｏｓｓ［ｉ］．ｔｘ、ｃｒｏｓｓ［ｉ］．ｔｙ、ｃｒｏｓｓ［ｉ］．ｂｘ、ｃｒｏｓｓ［ｉ］．ｂｙにそれぞれ、比較対象ウィンドウ画面の左上Ｘ座標、比較対象ウィンドウ画面の左上Ｙ座標、カレントウィンドウ画面の右下Ｘ座標、比較対象ウィンドウ画面の右下Ｙ座標がセットされる。
【００７０】
パターンコードがパターンＢ＆＆Ｄ＆＆Ａを示す場合（ステップＳ１６０３）は、ｃｒｏｓｓ［ｉ］．ｔｘ、ｃｒｏｓｓ［ｉ］．ｔｙ、ｃｒｏｓｓ［ｉ］．ｂｘ、ｃｒｏｓｓ［ｉ］．ｂｙにそれぞれ、カレントウィンドウ画面の左上Ｘ座標、比較対象ウィンドウ画面の左上Ｙ座標、比較対象ウィンドウ画面の右下Ｘ座標、比較対象ウィンドウ画面の右下Ｙ座標がセットされる。
【００７１】
パターンコードがパターンＣ＆＆Ｄ＆＆Ａを示す場合（ステップＳ１６０４）は、ｃｒｏｓｓ［ｉ］．ｔｘ、ｃｒｏｓｓ［ｉ］．ｔｙ、ｃｒｏｓｓ［ｉ］．ｂｘ、ｃｒｏｓｓ［ｉ］．ｂｙにそれぞれ、比較対象ウィンドウ画面の左上Ｘ座標、カレントウィンドウ画面の左上Ｙ座標、比較対象ウィンドウ画面の右下Ｘ座標、比較対象ウィンドウ画面の右下Ｙ座標がセットされる。
【００７２】
パターンコードがパターンＣ＆＆Ｂ＆＆Ａを示す場合（ステップＳ１６０５）は、ｃｒｏｓｓ［ｉ］．ｔｘ、ｃｒｏｓｓ［ｉ］．ｔｙ、ｃｒｏｓｓ［ｉ］．ｂｘ、ｃｒｏｓｓ［ｉ］．ｂｙにそれぞれ、比較対象ウィンドウ画面の左上Ｘ座標、比較対象ウィンドウ画面の左上Ｙ座標、カレントウィンドウ画面の右下Ｘ座標、比較対象ウィンドウ画面の右下Ｙ座標がセットされる。
【００７３】
パターンコードがパターンＣ＆＆Ｂを示す場合（ステップＳ１６０６）は、ｃｒｏｓｓ［ｉ］．ｔｘ、ｃｒｏｓｓ［ｉ］．ｔｙ、ｃｒｏｓｓ［ｉ］．ｂｘ、ｃｒｏｓｓ［ｉ］．ｂｙにそれぞれ、比較対象ウィンドウ画面の左上Ｘ座標、比較対象ウィンドウ画面の左上Ｙ座標、カレントウィンドウ画面の右下Ｘ座標、カレントウィンドウ画面の右下Ｙ座標がセットされる。
【００７４】
パターンコードがパターンＢ＆＆Ｄを示す場合（ステップＳ１６０７）は、ｃｒｏｓｓ［ｉ］．ｔｘ、ｃｒｏｓｓ［ｉ］．ｔｙ、ｃｒｏｓｓ［ｉ］．ｂｘ、ｃｒｏｓｓ［ｉ］．ｂｙにそれぞれ、カレントウィンドウ画面の左上Ｘ座標、比較対象ウィンドウ画面の左上Ｙ座標、比較対象ウィンドウ画面の右下Ｘ座標、カレントウィンドウ画面の右下Ｙ座標がセットされる。
【００７５】
パターンコードがパターンＤ＆＆Ａを示す場合（ステップＳ１６０８）は、ｃｒｏｓｓ［ｉ］．ｔｘ、ｃｒｏｓｓ［ｉ］．ｔｙ、ｃｒｏｓｓ［ｉ］．ｂｘ、ｃｒｏｓｓ［ｉ］．ｂｙにそれぞれ、カレントウィンドウ画面の左上Ｘ座標、カレントウィンドウ画面の左上Ｙ座標、比較対象ウィンドウ画面の右下Ｘ座標、比較対象ウィンドウ画面の右下Ｙ座標がセットされる。
【００７６】
パターンコードがパターンＡ＆＆Ｃを示す場合（ステップＳ１６０９）は、ｃｒｏｓｓ［ｉ］．ｔｘ、ｃｒｏｓｓ［ｉ］．ｔｙ、ｃｒｏｓｓ［ｉ］．ｂｘ、ｃｒｏｓｓ［ｉ］．ｂｙにそれぞれ、比較対象ウィンドウ画面の左上Ｘ座標、カレントウィンドウ画面の左上Ｙ座標、カレントウィンドウ画面の右下Ｘ座標、比較対象ウィンドウ画面の右下Ｙ座標がセットされる。
【００７７】
パターンコードがパターンＣ＆＆Ｄを示す場合（ステップＳ１６１０）は、ｃｒｏｓｓ［ｉ］．ｔｘ、ｃｒｏｓｓ［ｉ］．ｔｙ、ｃｒｏｓｓ［ｉ］．ｂｘ、ｃｒｏｓｓ［ｉ］．ｂｙにそれぞれ、比較対象ウィンドウ画面の左上Ｘ座標、カレントウィンドウ画面の左上Ｙ座標、比較対象ウィンドウ画面の右下Ｘ座標、カレントウィンドウ画面の右下Ｙ座標がセットされる。
【００７８】
パターンコードがパターンＢ＆＆Ａを示す場合（ステップＳ１６１１）は、ｃｒｏｓｓ［ｉ］．ｔｘ、ｃｒｏｓｓ［ｉ］．ｔｙ、ｃｒｏｓｓ［ｉ］．ｂｘ、ｃｒｏｓｓ［ｉ］．ｂｙにそれぞれ、カレントウィンドウ画面の左上Ｘ座標、比較対象ウィンドウ画面の左上Ｙ座標、カレントウィンドウ画面の右下Ｘ座標、比較対象ウィンドウ画面の右下Ｙ座標がセットされる。
【００７９】
パターンコードがパターンＣを示す場合（ステップＳ１６１２）は、ｃｒｏｓｓ［ｉ］．ｔｘ、ｃｒｏｓｓ［ｉ］．ｔｙ、ｃｒｏｓｓ［ｉ］．ｂｘ、ｃｒｏｓｓ［ｉ］．ｂｙにそれぞれ、比較対象ウィンドウ画面の左上Ｘ座標、カレントウィンドウ画面の左上Ｙ座標、カレントウィンドウ画面の右下Ｘ座標、カレントウィンドウ画面の右下Ｙ座標がセットされる。
【００８０】
パターンコードがパターンＢを示す場合（ステップＳ１６１３）は、ｃｒｏｓｓ［ｉ］．ｔｘ、ｃｒｏｓｓ［ｉ］．ｔｙ、ｃｒｏｓｓ［ｉ］．ｂｘ、ｃｒｏｓｓ［ｉ］．ｂｙにそれぞれ、カレントウィンドウ画面の左上Ｘ座標、比較対象ウィンドウ画面の左上Ｙ座標、比較対象ウィンドウ画面の右下Ｘ座標、カレントウィンドウ画面の右下Ｙ座標がセットされる。
【００８１】
パターンコードがパターンＤを示す場合（ステップＳ１６１４）は、ｃｒｏｓｓ［ｉ］．ｔｘ、ｃｒｏｓｓ［ｉ］．ｔｙ、ｃｒｏｓｓ［ｉ］．ｂｘ、ｃｒｏｓｓ［ｉ］．ｂｙにそれぞれ、カレントウィンドウ画面の左上Ｘ座標、カレントウィンドウ画面の左上Ｙ座標、比較対象ウィンドウ画面の右下Ｘ座標、カレントウィンドウ画面の右下Ｙ座標がセットされる。
【００８２】
パターンコードがパターンＡを示す場合（ステップＳ１６１５）は、ｃｒｏｓｓ［ｉ］．ｔｘ、ｃｒｏｓｓ［ｉ］．ｔｙ、ｃｒｏｓｓ［ｉ］．ｂｘ、ｃｒｏｓｓ［ｉ］．ｂｙにそれぞれ、カレントウィンドウ画面の左上Ｘ座標、カレントウィンドウ画面の左上Ｙ座標、カレントウィンドウ画面の右下Ｘ座標、比較対象ウィンドウ画面の右下Ｙ座標がセットされる。
【００８３】
パターンコードがパターンＹを示す場合（ステップＳ１６１６）は、カレントウィンドウ画面がそのままカレントウィンドウ画面との重なり領域となるために、ｃｒｏｓｓ［ｉ］．ｔｘ、ｃｒｏｓｓ［ｉ］．ｔｙ、ｃｒｏｓｓ［ｉ］．ｂｘ、ｃｒｏｓｓ［ｉ］．ｂｙにそれぞれ、カレントウィンドウ画面の左上Ｘ座標、左上Ｙ座標、右下Ｘ座標、右下Ｙ座標がセットされる。
【００８４】
以上に説明したように、パターンコードに基づいて、カレントウィンドウ画面と、要素変数ｉの示す比較対象ウィンドウ画面との重なり領域における左上および右下の絶対座標値のｃｒｏｓｓ［ｉ］へのセットが終了すると共に、分割座標セットの処理は終了し、サブルーチン重なり領域の抽出を達成する。
【００８５】
〔新規ウィンドウ画面の表示〕
続いて、ウィンドウ画面が新規に開かれた時の処理例を図１４に示す。この例において、符号１７０１に示すように、ベース画面Ｂ上に、ウィンドウ画面Ｗ１、さらにウィンドウ画面Ｗ１上に重なるようにウィンドウ画面Ｗ２がすでに表示された状態をウィンドウ状態１と称する。また、このウィンドウ状態１において、符号１７０２に示すように、ベース画面Ｂ、ウィンドウ画面Ｗ１およびウィンドウ画面Ｗ２に共に重なる位置に新規にウィンドウ画面Ｗ３が開かれた状態をウィンドウ状態２と称する。
【００８６】
図１５は、ウィンドウ状態１におけるベース画面Ｂ、ウィンドウ画面Ｗ１およびウィンドウ画面Ｗ２の各画面の上下位置関係およびウィンドウ画面情報テーブルの双方向リストを示している。ここで、ベース画面Ｂに割り当てられるテーブル変数をｗｓｃｒｃ［０］とし、ウィンドウ画面Ｗ１に割り当てられるテーブル変数をｗｓｃｒｃ［１］とし、ウィンドウ画面Ｗ２に割り当てられるテーブル変数をｗｓｃｒｃ［２］とする。これらテーブル変数と実際の各画面の上下位置関係との関連を以下に説明する。
【００８７】
各テーブル変数は、メンバとしてｕｐｐｅｒ［０］〜ｕｐｐｅｒ［４］およびｌｏｗｅｒ［０］〜ｌｏｗｅｒ［４］を有し、これらメンバに格納されるテーブル変数アドレスによって、各テーブル変数の示す画面の上下に重なっている画面とのリンクを表している。
【００８８】
図１５において、符号１８０１は、ベース画面Ｂ上に重なって表示された第１番目のウィンドウ画面としてウィンドウ画面Ｗ１が存在している状態を示している。符号１８０１の示す状態は、ベース画面Ｂを示すテーブル変数ｗｓｃｒｃ［０］において、ベース画面Ｂの上位に表示された第１番目のウィンドウ画面を示すメンバｕｐｐｅｒ［０］に、ウィンドウ画面Ｗ１を示すテーブル変数ｗｓｃｒｃ［１］のアドレスを格納することを意味し、ｗｓｃｒｃ［０］．ｕｐｐｅｒ［０］＝＆ｗｓｃｒｃ［１］と表現される。
【００８９】
同様に、符号１８０２は、ベース画面Ｂ上に重なって表示された第２番目のウィンドウ画面としてウィンドウ画面Ｗ２が存在している状態を示しており、ｗｓｃｒｃ［０］．ｕｐｐｅｒ［１］＝＆ｗｓｃｒｃ［２］と表現される。
【００９０】
符号１８０３は、ベース画面Ｂ上にこれ以上重なって表示されたウィンドウ画面が存在しないことを示し、ｗｓｃｒｃ［０］．ｕｐｐｅｒ［２］＝ＮＵＬＬと表現される。なお、続くメンバｕｐｐｅｒ［３］およびｕｐｐｅｒ［４］に対しても該当するウィンドウ画面が存在しないので、ｗｓｃｒｃ［０］．ｕｐｐｅｒ［３］＝ＮＵＬＬ、ｗｓｃｒｃ［０］．ｕｐｐｅｒ［４］＝ＮＵＬＬと表現される。
【００９１】
符号１８０４は、ウィンドウ画面Ｗ１上に重なって表示された第１番目のウィンドウ画面としてウィンドウ画面Ｗ２が存在している状態を示している。符号１８０４の示す状態は、ウィンドウ画面Ｗ１を示すテーブル変数ｗｓｃｒｃ［１］において、ウィンドウ画面Ｗ１の上位に表示された第１番目のウィンドウ画面を示すメンバｕｐｐｅｒ［０］に、ウィンドウ画面Ｗ２を示すテーブル変数ｗｓｃｒｃ［２］のアドレスを格納することを意味し、ｗｓｃｒｃ［１］．ｕｐｐｅｒ［０］＝＆ｗｓｃｒｃ［２］と表現される。
【００９２】
符号１８０５は、ウィンドウ画面Ｗ１上にこれ以上重なって表示されたウィンドウ画面が存在しないことを示し、ｗｓｃｒｃ［１］．ｕｐｐｅｒ［１］＝ＮＵＬＬと表現される。なお、続くメンバｕｐｐｅｒ［２］、ｕｐｐｅｒ［３］およびｕｐｐｅｒ［４］に対しても該当するウィンドウ画面が存在しないので、ｗｓｃｒｃ［１］．ｕｐｐｅｒ［２］＝ＮＵＬＬ、ｗｓｃｒｃ［１］．ｕｐｐｅｒ［３］＝ＮＵＬＬ、ｗｓｃｒｃ［１］．ｕｐｐｅｒ［４］＝ＮＵＬＬと表現される。
【００９３】
符号１８０６は、ウィンドウ画面Ｗ２上に重なって表示されたウィンドウ画面が存在しないことを示し、ｗｓｃｒｃ［２］．ｕｐｐｅｒ［０］＝ＮＵＬＬと表現される。なお、続くメンバｕｐｐｅｒ［１］、ｕｐｐｅｒ［２］、ｕｐｐｅｒ［３］およびｕｐｐｅｒ［４］に対しても該当するウィンドウ画面が存在しないので、ｗｓｃｒｃ［２］．ｕｐｐｅｒ［１］＝ＮＵＬＬ、ｗｓｃｒｃ［２］．ｕｐｐｅｒ［２］＝ＮＵＬＬ、ｗｓｃｒｃ［２］．ｕｐｐｅｒ［３］＝ＮＵＬＬ、ｗｓｃｒｃ［２］．ｕｐｐｅｒ［４］＝ＮＵＬＬと表現される。
【００９４】
符号１８０７は、ベース画面Ｂの下に重なって表示されたウィンドウ画面が存在しないことを示し、ｗｓｃｒｃ［１］．ｌｏｗｅｒ［０］＝ＮＵＬＬと表現される。なお、続くメンバｌｏｗｅｒ［１］、ｌｏｗｅｒ［２］、ｌｏｗｅｒ［３］およびｌｏｗｅｒ［４］に対しても該当するウィンドウ画面が存在しないので、ｗｓｃｒｃ［１］．ｌｏｗｅｒ［１］＝ＮＵＬＬ、ｗｓｃｒｃ［１］．ｌｏｗｅｒ［２］＝ＮＵＬＬ、ｗｓｃｒｃ［１］．ｌｏｗｅｒ［３］＝ＮＵＬＬ、ｗｓｃｒｃ［１］．ｌｏｗｅｒ［４］＝ＮＵＬＬと表現される。
【００９５】
符号１８０８は、ウィンドウ画面Ｗ１の下に重なって表示された第１番目のウィンドウ画面としてベース画面Ｂが存在している状態を示している。符号１８０８の示す状態は、ウィンドウ画面Ｗ１を示すテーブル変数ｗｓｃｒｃ［１］において、ウィンドウ画面Ｗ１の下位に表示された第１番目のウィンドウ画面を示すメンバｌｏｗｅｒ［０］に、ベース画面Ｂを示すテーブル変数ｗｓｃｒｃ［０］のアドレスを格納することを意味し、ｗｓｃｒｃ［１］．ｌｏｗｅｒ［０］＝＆ｗｓｃｒｃ［０］と表現される。
【００９６】
符号１８０９は、ウィンドウ画面Ｗ１の下にこれ以上重なって表示されたウィンドウ画面が存在しないことを示し、ｗｓｃｒｃ［１］．ｌｏｗｅｒ［１］＝ＮＵＬＬと表現される。なお、続くメンバｌｏｗｅｒ［２］、ｌｏｗｅｒ［３］およびｌｏｗｅｒ［４］に対しても該当するウィンドウ画面が存在しないので、ｗｓｃｒｃ［１］．ｌｏｗｅｒ［２］＝ＮＵＬＬ、ｗｓｃｒｃ［１］．ｌｏｗｅｒ［３］＝ＮＵＬＬ、ｗｓｃｒｃ［１］．ｌｏｗｅｒ［４］＝ＮＵＬＬと表現される。
【００９７】
符号１８１０は、ウィンドウ画面Ｗ２の下に重なって表示された第１番目のウィンドウ画面としてベース画面Ｂが存在している状態を示しており、ｗｓｃｒｃ［２］．ｌｏｗｅｒ［０］＝＆ｗｓｃｒｃ［０］と表現される。
【００９８】
符号１８１１は、ウィンドウ画面Ｗ２の下に重なって表示された第２番目のウィンドウ画面としてウィンドウ画面Ｗ１が存在している状態を示しており、ｗｓｃｒｃ［２］．ｌｏｗｅｒ［１］＝＆ｗｓｃｒｃ［１］と表現される。
【００９９】
符号１８１２は、ウィンドウ画面Ｗ２の下にこれ以上重なって表示されたウィンドウ画面が存在しないことを示し、ｗｓｃｒｃ［２］．ｌｏｗｅｒ［２］＝ＮＵＬＬと表現される。なお、続くメンバｌｏｗｅｒ［３］およびｌｏｗｅｒ［４］に対しても該当するウィンドウ画面が存在しないので、ｗｓｃｒｃ［２］．ｌｏｗｅｒ［３］＝ＮＵＬＬ、ｗｓｃｒｃ［２］．ｌｏｗｅｒ［４］＝ＮＵＬＬと表現される。
【０１００】
以上に説明したように、ウィンドウ状態１において、ウィンドウ画面情報テーブルの双方向リストが作成され、この双方向リストを参照することによって、表示されている画面間の位置関係を知ることができる。
【０１０１】
ウィンドウ状態１からウィンドウ状態２への移行すなわちウィンドウ状態１において新たにウィンドウＷ３が開かれると、ウィンドウ画面の上下位置関係および重なりが再チェックされ、他のすでに表示されているウィンドウ画面情報テーブルとのリンクを行う処理が実行されて、新たなウィンドウ画面情報テーブルの双方向リストが作成される。
【０１０２】
図１６は、ウィンドウ状態２におけるベース画面Ｂ、ウィンドウ画面Ｗ１、ウィンドウ画面Ｗ２およびウィンドウ画面Ｗ３の各画面の上下位置関係および更新されたウィンドウ画面情報テーブルの双方向リストを示している。ここで、ベース画面Ｂに割り当てられるテーブル変数をｗｓｃｒｃ［０］とし、ウィンドウ画面Ｗ１に割り当てられるテーブル変数をｗｓｃｒｃ［１］とし、ウィンドウ画面Ｗ２に割り当てられるテーブル変数をｗｓｃｒｃ［２］とし、新たに開かれたウィンドウ画面Ｗ３に割り当てられるテーブル変数をｗｓｃｒｃ［３］とする。これらテーブル変数と実際の各画面の上下位置関係との関連を以下に説明する。
【０１０３】
各テーブル変数は、図１５における説明と同様に、メンバとしてｕｐｐｅｒ［０］〜ｕｐｐｅｒ［４］およびｌｏｗｅｒ［０］〜ｌｏｗｅｒ［４］を有し、これらメンバに格納されるテーブル変数アドレスによって、各テーブル変数の示す画面の上下に重なっている画面とのリンクを表している。
【０１０４】
図１６のベース画面Ｂ、ウィンドウ画面Ｗ１およびウィンドウ画面Ｗ２において、符号１９０１、１９０２、１９０５、１９１１、１９１２、１９１３、１９１４、１９１５、１９１６の示す状態およびテーブル変数すなわちｗｓｃｒｃ［０］．ｕｐｐｅｒ［０］、ｗｓｃｒｃ［０］．ｕｐｐｅｒ［１］、ｗｓｃｒｃ［１］．ｕｐｐｅｒ［０］、ｗｓｃｒｃ［０］．ｌｏｗｅｒ［０］、ｗｓｃｒｃ［１］．ｌｏｗｅｒ［０］、ｗｓｃｒｃ［１］．ｌｏｗｅｒ［１］、ｗｓｃｒｃ［２］．ｌｏｗｅｒ［０］、ｗｓｃｒｃ［２］．ｌｏｗｅｒ［１］、ｗｓｃｒｃ［２］．ｌｏｗｅｒ［２］は、それぞれ図１５における符号１８０１、１８０２、１８０４、１８０７、１８０８、１８０９、１８１０、１８１１、１８１２の示す状態と同じである。
【０１０５】
ここでは、ウィンドウ状態２によって、更新されたテーブル変数について説明する。図１９において、符号１９０３は、ベース画面Ｂ上に重なって表示された第３番目のウィンドウ画面としてウィンドウ画面Ｗ３が存在している状態を示している。符号１９０３の示す状態は、ベース画面Ｂを示すテーブル変数ｗｓｃｒｃ［０］において、ベース画面Ｂの上位に表示された第３番目のウィンドウ画面を示すメンバｕｐｐｅｒ［２］に、ウィンドウ画面Ｗ３を示すテーブル変数ｗｓｃｒｃ［３］のアドレスを格納することを意味し、ｗｓｃｒｃ［０］．ｕｐｐｅｒ［２］＝＆ｗｓｃｒｃ［３］と表現される。
【０１０６】
符号１９０４は、ベース画面Ｂ上にこれ以上重なって表示されたウィンドウ画面が存在しないことを示し、ｗｓｃｒｃ［０］．ｕｐｐｅｒ［３］＝ＮＵＬＬと表現される。なお、続くメンバｕｐｐｅｒ［４］に対しても該当するウィンドウ画面が存在しないので、ｗｓｃｒｃ［０］．ｕｐｐｅｒ［４］＝ＮＵＬＬと表現される。
【０１０７】
符号１９０５は、ウィンドウ画面Ｗ１上に重なって表示された第１番目のウィンドウ画面としてウィンドウ画面Ｗ３が存在している状態を示している。符号１９０５の示す状態は、ウィンドウ画面Ｗ３を示すテーブル変数ｗｓｃｒｃ［２］において、ウィンドウ画面Ｗ１の上位に表示された第２番目のウィンドウ画面を示すメンバｕｐｐｅｒ［０］に、ウィンドウ画面Ｗ２を示すテーブル変数ｗｓｃｒｃ［２］のアドレスを格納することを意味し、ｗｓｃｒｃ［１］．ｕｐｐｅｒ［０］＝＆ｗｓｃｒｃ［２］と表現される。
【０１０８】
符号１９０６は、ウィンドウ画面Ｗ１上に重なって表示された第２番目のウィンドウ画面としてウィンドウ画面Ｗ３が存在している状態を示している。符号１９０６の示す状態は、ウィンドウ画面Ｗ３を示すテーブル変数ｗｓｃｒｃ［３］において、ウィンドウ画面Ｗ１の上位に表示された第２番目のウィンドウ画面を示すメンバｕｐｐｅｒ［１］に、ウィンドウ画面Ｗ３を示すテーブル変数ｗｓｃｒｃ［３］のアドレスを格納することを意味し、ｗｓｃｒｃ［１］．ｕｐｐｅｒ［１］＝＆ｗｓｃｒｃ［３］と表現される。
【０１０９】
符号１９０７は、ウィンドウ画面Ｗ１上にこれ以上重なって表示されたウィンドウ画面が存在しないことを示し、ｗｓｃｒｃ［１］．ｕｐｐｅｒ［２］＝ＮＵＬＬと表現される。なお、続くメンバｕｐｐｅｒ［３］およびｕｐｐｅｒ［４］に対しても該当するウィンドウ画面が存在しないので、ｗｓｃｒｃ［１］．ｕｐｐｅｒ［３］＝ＮＵＬＬ、ｗｓｃｒｃ［１］．ｕｐｐｅｒ［４］＝ＮＵＬＬと表現される。
【０１１０】
符号１９０８は、ウィンドウ画面Ｗ２上に重なって表示された第１番目のウィンドウ画面としてウィンドウ画面Ｗ３が存在している状態を示している。符号１９０８の示す状態は、ウィンドウ画面Ｗ３を示すテーブル変数ｗｓｃｒｃ［３］において、ウィンドウ画面Ｗ２の上位に表示された第１番目のウィンドウ画面を示すメンバｕｐｐｅｒ［０］に、ウィンドウ画面Ｗ３を示すテーブル変数ｗｓｃｒｃ［３］のアドレスを格納することを意味し、ｗｓｃｒｃ［２］．ｕｐｐｅｒ［０］＝＆ｗｓｃｒｃ［３］と表現される。
【０１１１】
符号１９０９は、ウィンドウ画面Ｗ２上にこれ以上重なって表示されたウィンドウ画面が存在しないことを示し、ｗｓｃｒｃ［２］．ｕｐｐｅｒ［１］＝ＮＵＬＬと表現される。なお、続くメンバｕｐｐｅｒ［２］、ｕｐｐｅｒ［３］およびｕｐｐｅｒ［４］に対しても該当するウィンドウ画面が存在しないので、ｗｓｃｒｃ［２］．ｕｐｐｅｒ［２］＝ＮＵＬＬ、ｗｓｃｒｃ［２］．ｕｐｐｅｒ［３］＝ＮＵＬＬ、ｗｓｃｒｃ［２］．ｕｐｐｅｒ［４］＝ＮＵＬＬと表現される。
【０１１２】
符号１９１０は、ウィンドウ画面Ｗ３上に重なって表示されたウィンドウ画面が存在しないことを示し、ｗｓｃｒｃ［３］．ｕｐｐｅｒ［０］＝ＮＵＬＬと表現される。なお、続くメンバｕｐｐｅｒ［１］、ｕｐｐｅｒ［２］、ｕｐｐｅｒ［３］およびｕｐｐｅｒ［４］に対しても該当するウィンドウ画面が存在しないので、ｗｓｃｒｃ［３］．ｕｐｐｅｒ［１］＝ＮＵＬＬ、ｗｓｃｒｃ［３］．ｕｐｐｅｒ［２］＝ＮＵＬＬ、ｗｓｃｒｃ［３］．ｕｐｐｅｒ［３］＝ＮＵＬＬ、ｗｓｃｒｃ［３］．ｕｐｐｅｒ［４］＝ＮＵＬＬと表現される。
【０１１３】
符号１９１７は、ウィンドウ画面Ｗ３の下に重なって表示された第１番目のウィンドウ画面としてベース画面Ｂが存在している状態を示しており、ｗｓｃｒｃ［３］．ｌｏｗｅｒ［０］＝＆ｗｓｃｒｃ［０］と表現される。
【０１１４】
符号１９１８は、ウィンドウ画面Ｗ３の下に重なって表示された第２番目のウィンドウ画面としてウィンドウ画面Ｗ１が存在している状態を示しており、ｗｓｃｒｃ［３］．ｌｏｗｅｒ［１］＝＆ｗｓｃｒｃ［１］と表現される。
【０１１５】
符号１９１９は、ウィンドウ画面Ｗ３の下に重なって表示された第３番目のウィンドウ画面としてウィンドウ画面Ｗ２が存在している状態を示しており、ｗｓｃｒｃ［３］．ｌｏｗｅｒ［２］＝＆ｗｓｃｒｃ［２］と表現される。
【０１１６】
符号１９２０は、ウィンドウ画面Ｗ３の下にこれ以上重なって表示されたウィンドウ画面が存在しないことを示し、ｗｓｃｒｃ［３］．ｌｏｗｅｒ［３］＝ＮＵＬＬと表現される。なお、続くメンバｌｏｗｅｒ［４］に対しても該当するウィンドウ画面が存在しないので、ｗｓｃｒｃ［３］．ｌｏｗｅｒ［４］＝ＮＵＬＬと表現される。
【０１１７】
以上に説明したように、ウィンドウ状態２において、ウィンドウ画面情報テーブルの双方向リストが更新され、この双方向リストを参照することによって、表示されている画面間の位置関係を知ることができる。
【０１１８】
続いて、ウィンドウ状態１において、ウィンドウ画面情報テーブルの重なりエリアの状態図を図１７に示し、以下にウィンドウ画面情報テーブルにおいて重なりエリア情報を示すメンバｃｒｏｓｓ［］との関連を説明する。
【０１１９】
図１７の符号２００１は、ベース画面Ｂに対して、第２の重なりエリアとして、左上絶対座標（Ｐｔ０ｘ，Ｐｔ０ｙ）および右下絶対座標（Ｐｂ０ｘ，Ｐｂ０ｙ）の示す位置にウィンドウ画面Ｗ１との重なりが存在することを示し、ベース画面Ｂのテーブル変数ｗｓｃｒｃ［０］への重なりエリアの情報の格納は、それぞれｗｓｃｒｃ［０］．ｃｒｏｓｓ［０］．ｔｘ＝Ｐｔ０ｘ、ｗｓｃｒｃ［０］．ｃｒｏｓｓ［０］．ｔｙ＝Ｐｔ０ｙ、ｗｓｃｒｃ［０］．ｃｒｏｓｓ［０］．ｂｘ＝Ｐｂ０ｘ、ｗｓｃｒｃ［０］．ｃｒｏｓｓ［０］．ｂｙ＝Ｐｂ０ｙと表現される。
【０１２０】
なお、図２０においては、左上絶対座標（Ｐｔ０ｘ，Ｐｔ０ｙ）をＰｔ０、右下絶対座標（Ｐｂ０ｘ，Ｐｂ０ｙ）をＰｂ０と示し、ｃｒｏｓｓ［］に格納される重なりエリアを示す座標をＰｔ０／Ｐｂ０と示している（以下に説明する他の重なりエリアについても同様に示す）。
【０１２１】
符号２００２は、ベース画面Ｂに対して、第２の重なりエリアとして、左上絶対座標（Ｐｔ１ｘ，Ｐｔ１ｙ）および右下絶対座標（Ｐｂ１ｘ，Ｐｂ１ｙ）の示す位置にウィンドウ画面Ｗ２との重なりが存在することを示し、ベース画面Ｂのテーブル変数ｗｓｃｒｃ［０］への重なりエリアの情報の格納は、それぞれｗｓｃｒｃ［０］．ｃｒｏｓｓ［１］．ｔｘ＝Ｐｔ１ｘ、ｗｓｃｒｃ［０］．ｃｒｏｓｓ［１］．ｔｙ＝Ｐｔ１ｙ、ｗｓｃｒｃ［０］．ｃｒｏｓｓ［１］．ｂｘ＝Ｐｂ１ｘ、ｗｓｃｒｃ［０］．ｃｒｏｓｓ［１］．ｂｙ＝Ｐｂ１ｙと表現される。
【０１２２】
ベース画面Ｂに対して上位に位置する重なりエリアはウィンドウ画面Ｗ１およびウィンドウ画面Ｗ２のみであるので、ベース画面Ｂのテーブル変数ｗｓｃｒｃ［０］のメンバｃｒｏｓｓ［２］、ｃｒｏｓｓ［３］、ｃｒｏｓｓ［４］のそれぞれの更なるメンバｔｘ、ｔｙ、ｂｘ、ｂｙには、ＮＵＬＬコードが格納される。
【０１２３】
符号２００３は、ウィンドウ画面Ｗ１に対して、第１の重なりエリアとして、左上絶対座標（Ｐｔ２ｘ，Ｐｔ２ｙ）および右下絶対座標（Ｐｂ２ｘ，Ｐｂ２ｙ）の示す位置にウィンドウ画面Ｗ２との重なりが存在することを示し、ウィンドウ画面Ｗ１のテーブル変数ｗｓｃｒｃ［１］への重なりエリアの情報の格納は、それぞれｗｓｃｒｃ［１］．ｃｒｏｓｓ［０］．ｔｘ＝Ｐｔ２ｘ、ｗｓｃｒｃ［０］．ｃｒｏｓｓ［０］．ｔｙ＝Ｐｔ２ｙ、ｗｓｃｒｃ［１］．ｃｒｏｓｓ［０］．ｂｘ＝Ｐｂ２ｘ、ｗｓｃｒｃ［１］．ｃｒｏｓｓ［０］．ｂｙ＝Ｐｂ２ｙと表現される。
【０１２４】
ウィンドウ画面Ｗ１に対して上位に位置する重なりエリアはウィンドウ画面Ｗ２のみであるので、ウィンドウ画面Ｗ１のテーブル変数ｗｓｃｒｃ［１］のメンバｃｒｏｓｓ［１］、ｃｒｏｓｓ［２］、ｃｒｏｓｓ［３］、ｃｒｏｓｓ［４］のそれぞれの更なるメンバｔｘ、ｔｙ、ｂｘ、ｂｙには、ＮＵＬＬコードが格納される。
【０１２５】
また、ウィンドウ画面Ｗ２に対して上位に位置する重なりエリアは存在しないので、ウィンドウ画面Ｗ２のテーブル変数ｗｓｃｒｃ［２］のメンバｃｒｏｓｓ［０］〜ｃｒｏｓｓ［４］のそれぞれの更なるメンバｔｘ、ｔｙ、ｂｘ、ｂｙには、ＮＵＬＬコードが格納される。
【０１２６】
ウィンドウ状態１からウィンドウ状態２への移行すなわちウィンドウ状態１において新たにウィンドウＷ３が開かれると、ウィンドウ画面情報テーブルにおいて重なりエリア情報を示すメンバｃｒｏｓｓ［］が更新される。図１８は、ウィンドウ状態２において、ウィンドウ画面情報テーブルの重なりエリアの状態図を示しており、以下にウィンドウ画面情報テーブルにおいて重なりエリア情報を示すメンバｃｒｏｓｓ［］との関連を説明する。
【０１２７】
ウィンドウ画面情報テーブルにおいて、ｗｓｃｒｃ［０］．ｃｒｏｓｓ［０］、ｗｓｃｒｃ［０］．ｃｒｏｓｓ［１］、ｗｓｃｒｃ［１］．ｃｒｏｓｓ［０］のそれぞれのメンバｔｘ、ｔｙ、ｂｘ、ｂｙは、ベース画面Ｂ、ウィンドウ画面Ｗ１およびウィンドウ画面Ｗ２間における重なり位置関係が変更されないので更新されない。ここでは、ウィンドウ状態２によって、更新されたテーブル変数について説明する。
【０１２８】
図１８の符号２１０１は、ベース画面Ｂに対して、第３の重なりエリアとして、左上絶対座標（Ｐｔ３ｘ，Ｐｔ３ｙ）および右下絶対座標（Ｐｂ３ｘ，Ｐｂ３ｙ）の示す位置にウィンドウ画面Ｗ３との重なりが存在することを示し、ベース画面Ｂのテーブル変数ｗｓｃｒｃ［０］への重なりエリアの情報の格納は、それぞれｗｓｃｒｃ［０］．ｃｒｏｓｓ［２］．ｔｘ＝Ｐｔ３ｘ、ｗｓｃｒｃ［０］．ｃｒｏｓｓ［２］．ｔｙ＝Ｐｔ３ｙ、ｗｓｃｒｃ［０］．ｃｒｏｓｓ［２］．ｂｘ＝Ｐｂ３ｘ、ｗｓｃｒｃ［０］．ｃｒｏｓｓ［２］．ｂｙ＝Ｐｂ３ｙと表現される。
【０１２９】
ベース画面Ｂに対して上位に位置する重なりエリアはウィンドウ画面Ｗ１、ウィンドウ画面Ｗ２およびウィンドウ画面Ｗ３のみであるので、ベース画面Ｂのテーブル変数ｗｓｃｒｃ［０］のメンバｃｒｏｓｓ［３］、ｃｒｏｓｓ［４］のそれぞれの更なるメンバｔｘ、ｔｙ、ｂｘ、ｂｙには、ＮＵＬＬコードが格納される。
【０１３０】
符号２１０２は、ウィンドウ画面Ｗ１に対して、第２の重なりエリアとして、左上絶対座標（Ｐｔ４ｘ，Ｐｔ４ｙ）および右下絶対座標（Ｐｂ４ｘ，Ｐｂ４ｙ）の示す位置にウィンドウ画面Ｗ３との重なりが存在することを示し、ウィンドウ画面Ｗ１のテーブル変数ｗｓｃｒｃ［１］への重なりエリアの情報の格納は、それぞれｗｓｃｒｃ［１］．ｃｒｏｓｓ［１］．ｔｘ＝Ｐｔ４ｘ、ｗｓｃｒｃ［１］．ｃｒｏｓｓ［１］．ｔｙ＝Ｐｔ４ｙ、ｗｓｃｒｃ［０］．ｃｒｏｓｓ［１］．ｂｘ＝Ｐｂ４ｘ、ｗｓｃｒｃ［０］．ｃｒｏｓｓ［１］．ｂｙ＝Ｐｂ４ｙと表現される。
【０１３１】
ウィンドウ画面Ｗ１に対して上位に位置する重なりエリアはウィンドウ画面Ｗ２およびウィンドウ画面Ｗ３のみであるので、ウィンドウ画面Ｗ１のテーブル変数ｗｓｃｒｃ［０］のメンバｃｒｏｓｓ［２］、ｃｒｏｓｓ［３］、ｃｒｏｓｓ［４］のそれぞれの更なるメンバｔｘ、ｔｙ、ｂｘ、ｂｙには、ＮＵＬＬコードが格納される。
【０１３２】
符号２１０３は、ウィンドウ画面Ｗ２に対して、第１の重なりエリアとして、左上絶対座標（Ｐｔ５ｘ，Ｐｔ５ｙ）および右下絶対座標（Ｐｂ５ｘ，Ｐｂ５ｙ）の示す位置にウィンドウ画面Ｗ３との重なりが存在することを示し、ウィンドウ画面Ｗ２のテーブル変数ｗｓｃｒｃ［２］への重なりエリアの情報の格納は、それぞれｗｓｃｒｃ［２］．ｃｒｏｓｓ［０］．ｔｘ＝Ｐｔ５ｘ、ｗｓｃｒｃ［２］．ｃｒｏｓｓ［０］．ｔｙ＝Ｐｔ５ｙ、ｗｓｃｒｃ［２］．ｃｒｏｓｓ［０］．ｂｘ＝Ｐｂ５ｘ、ｗｓｃｒｃ［２］．ｃｒｏｓｓ［０］．ｂｙ＝Ｐｂ５ｙと表現される。
【０１３３】
ウィンドウ画面Ｗ２に対して上位に位置する重なりエリアはウィンドウ画面Ｗ３のみであるので、ウィンドウ画面Ｗ２のテーブル変数ｗｓｃｒｃ［２］のメンバｃｒｏｓｓ［１］、ｃｒｏｓｓ［２］、ｃｒｏｓｓ［３］、ｃｒｏｓｓ［４］のそれぞれの更なるメンバｔｘ、ｔｙ、ｂｘ、ｂｙには、ＮＵＬＬコードが格納される。
【０１３４】
また、ウィンドウ画面Ｗ３に対して上位に位置する重なりエリアは存在しないので、ウィンドウ画面Ｗ３のテーブル変数ｗｓｃｒｃ［３］のメンバｃｒｏｓｓ［０］〜ｃｒｏｓｓ［４］のそれぞれの更なるメンバｔｘ、ｔｙ、ｂｘ、ｂｙには、ＮＵＬＬコードが格納される。
【０１３５】
以上に説明した処理によって、新たなウィンドウ画面が開かれた際のウィンドウ画面テーブルの更新が達成され、表示されている各画面間における重なりエリアの情報（座標）を参照することができる。
【０１３６】
以上に説明したパターン分析処理および分割座標セット処理から構成される〔重なりチェックおよびウィンドウ画面情報テーブルとのリンク〕処理によって、処理対象とするウィンドウ画面と他のウィンドウ画面との位置関係が常にウィンドウ画面情報テーブルに格納され、新規に開かれるウィンドウ画面と、他のすでに表示されているウィンドウ画面との位置関係が、複雑な処理を必要とせずに、このウィンドウ画面情報テーブルのみの参照および更新によって達成される。
【０１３７】
また、予め定められたパターンとのマッチングを行うことで、ウィンドウ画面間の重なりエリアを高速に求めることができ、ウィンドウ画面情報テーブルの作成が迅速に行える。
【０１３８】
〔ウィンドウ画面の消去（リストアンチェイン処理）〕
つぎに、表示されているウィンドウ画面のいずれか一つが閉じられた時の処理すなわちウィンドウ画面の消去処理を説明する。図１９は、ウィンドウ画面の消去処理のフローチャートを示した図である。
【０１３９】
ウィンドウ画面の消去処理は、閉じられるウィンドウ画面に関連する他のウィンドウ画面に対するリンクをウィンドウ画面情報テーブル群の双方向リストより削除するリストアンチェイン処理（ステップＳ２２０１）と、閉じられたウィンドウ画面が使用していたウィンドウ画面情報テーブルを解放する処理（ステップＳ２２０２）から構成される。ステップＳ２２０１の示すリストアンチェイン処理およびステップＳ２２０２の示すウィンドウ画面情報テーブル解放処理を共に含めた処理詳細を、図２０にＨＣＰによって示す。
【０１４０】
図２０において、リストアンチェイン処理を行うサブルーチンへの引数は、ステップＳ２３０１に示すように、閉じられるウィンドウ画面（以下、対象ウィンドウ画面）のウィンドウ画面情報テーブル先頭アドレスを引数とする。図２０に示されるＨＣＰにおいて、変数ｉおよびｊは、下位および上位に同時表示可能なウィンドウ画面の最大枚数（ここではそれぞれ５枚）に至るまでインクリメント（ここではｉ＝０からｉ＝４まで）される他のすでに表示されているウィンドウ画面のウィンドウ画面情報テーブルを示す要素変数である。
【０１４１】
まず、引数によって示される対象ウィンドウ画面の第ｉ番目の下位ウィンドウ画面が存在するかを判定する（ステップＳ２３０２）。例えば、対象ウィンドウ画面のテーブル変数をｗｓｃｒｃ［１］とすると、ｗｓｃｒｃ［１］．ｌｏｗｅｒ［ｉ］にＮＵＬＬコードが格納されていないかを判定する。
【０１４２】
ステップＳ２３０２において、対象ウィンドウ画面の第ｉ番目の下位ウィンドウ画面が存在する場合（例えば、ｗｓｃｒｃ［１］．ｌｏｗｅｒ［ｉ］にＮＵＬＬコードが格納されていない場合）は、対象ウィンドウ画面において第ｉ番目の下位ウィンドウ画面としてリンクされているウィンドウ画面のテーブル変数（例えばｗｓｃｒｃ［０］）において、第ｊ番目の上位ウィンドウ画面としてリンクされているウィンドウ画面が、対象ウィンドウ画面自身であるかを判定する（ステップＳ２３０３）。例えばｗｓｃｒｃ［０］．ｕｐｐｅｒ［ｊ］＝＝ｗｓｃｒｃ［１］を満たすかを判定する。
【０１４３】
ステップＳ２３０３において、対象ウィンドウ画面において第ｉ番目の下位ウィンドウ画面としてリンクされているウィンドウ画面のテーブル変数において、第ｊ番目の上位ウィンドウ画面としてリンクされているウィンドウ画面が、対象ウィンドウ画面自身である場合は、その第ｊ番目の上位ウィンドウ画面としてリンクされているウィンドウ画面のリンクを解除する（ステップＳ２３０４）。すなわち、例においてはｗｓｃｒｃ［０］．ｕｐｐｅｒ［ｊ］にＮＵＬＬコードを格納する。
【０１４４】
ステップＳ２３０３の処理は、変数ｊを０から４まで変化させて繰り返し行われ、対象ウィンドウ画面の第ｉ番目の下位ウィンドウ画面としてリンクされたウィンドウ画面のテーブル変数において、すべての上位ウィンドウ画面のリンク先に対し、そのリンク先が対象ウィンドウ画面自身に該当するかをチェックする。続いて、対象ウィンドウ画面の第ｉ番目の下位ウィンドウ画面のリンクを解除する（ステップＳ２３０５）。すなわち、例においてはｗｓｃｒｃ［１］．ｌｏｗｅｒ［ｉ］にＮＵＬＬコードを格納する。
【０１４５】
以上のステップＳ２３０３〜Ｓ２３０５の処理が終了した後、または、ステップＳ２３０２において、対象ウィンドウ画面の第ｉ番目の下位ウィンドウ画面が存在しない場合は、続くステップＳ２３０６に処理が移る。
【０１４６】
ステップＳ２３０６においては、リストアンチェイン処理を行うサブルーチン（ステップＳ２３０１）への引数によって示される対象ウィンドウ画面の第ｉ番目の上位ウィンドウ画面が存在するかを判定する。例えば、ｗｓｃｒｃ［１］．ｕｐｐｅｒ［ｉ］にＮＵＬＬコードが格納されていないかを判定する。
【０１４７】
ステップＳ２３０６において、対象ウィンドウ画面の第ｉ番目の上位ウィンドウ画面が存在する場合（例えば、ｗｓｃｒｃ［１］．ｕｐｐｅｒ［ｉ］にＮＵＬＬコードが格納されていない場合）は、対象ウィンドウ画面において第ｉ番目の上位ウィンドウ画面としてリンクされているウィンドウ画面のテーブル変数（例えばｗｓｃｒｃ［２］）において、第ｊ番目の下位ウィンドウ画面としてリンクされているウィンドウ画面が、対象ウィンドウ画面自身であるかを判定する（ステップＳ２３０７）。例えばｗｓｃｒｃ［２］．ｌｏｗｅｒ［ｊ］＝＝ｗｓｃｒｃ［１］を満たすかを判定する。
【０１４８】
ステップＳ２３０７において、対象ウィンドウ画面において第ｉ番目の上位ウィンドウ画面としてリンクされているウィンドウ画面のテーブル変数において、第ｊ番目の下位ウィンドウ画面としてリンクされているウィンドウ画面が、対象ウィンドウ画面自身である場合は、その第ｊ番目の下位ウィンドウ画面としてリンクされているウィンドウ画面のリンクを解除する（ステップＳ２３０８）。すなわち、例においてはｗｓｃｒｃ［２］．ｌｏｗｅｒ［ｊ］にＮＵＬＬコードを格納する。
【０１４９】
ステップＳ２３０７の処理は、変数ｊを０から４まで変化させて繰り返し行われ、対象ウィンドウ画面の第ｉ番目の下位ウィンドウ画面としてリンクされたウィンドウ画面のテーブル変数において、すべての下位ウィンドウ画面のリンク先に対し、そのリンク先が対象ウィンドウ画面自身に該当するかをチェックする。続いて、対象ウィンドウ画面の第ｉ番目の上位ウィンドウ画面のリンクを解除する（ステップＳ２３０９）。すなわち、例においてはｗｓｃｒｃ［１］．ｕｐｐｅｒ［ｉ］にＮＵＬＬコードを格納する。
【０１５０】
以上のステップＳ２３０７〜Ｓ２３０９の処理が終了した後、または、ステップＳ２３０６において、対象ウィンドウ画面の第ｉ番目の上位ウィンドウ画面が存在しない場合は、変数ｉがインクリメントされて、ステップＳ２３０２に処理が戻る。
【０１５１】
以上のステップＳ２３０２〜Ｓ２３０９の処理が、変数ｉが下位および上位に同時表示可能なウィンドウ画面の最大枚数に相当する値（ここでは４）に至るまで繰り返された後、リストアンチェイン処理を終了する。また同時に、閉じようとするウィンドウ画面のウィンドウ画面情報テーブルのために使用していたメモリエリアが解放される。
【０１５２】
従って、リストアンチェイン処理により、閉じようとするウィンドウ画面のウィンドウ画面情報テーブルの下位にリンクされているウィンドウ画面情報テーブルを全て検索し、閉じようとするウィンドウ画面が上位ウィンドウ画面としてリンクされていれば、そのリンクを解除する。つぎに、閉じようとするウィンドウ画面のウィンドウ画面情報テーブルの上位にリンクされているウィンドウ画面情報テーブルを全て検索し、閉じようとするウィンドウ画面が下位ウィンドウ画面としてリンクされていれば、そのリンクを解除する。これにより、閉じようとするウィンドウ画面に関連する他のウィンドウ画面に対するリンクがウィンドウ画面情報テーブル群の双方向リストから削除できる。
【０１５３】
以上に説明したリストアンチェイン処理によって、閉じられるウィンドウ画面に対するウィンドウ画面情報テーブル上のリンクを解除し、使用されないメモリエリアの開放が可能になる。
【０１５４】
〔再描画処理（矩形分割処理）〕
つぎに、各ウィンドウ画面上で再描画要求が発生した際の、以上の説明により作成されるウィンドウ画面情報テーブル群を参照し、再描画の必要な矩形エリア（以下、対象矩形エリア）を分割する矩形分割処理、分割後の分割矩形エリアの特定およびコピーするまでの処理を説明する。
【０１５５】
図２１に矩形分割処理の施されるウィンドウ画面の表示例を示す。図２１において、符号２４０１に示すように、ベース画面Ｂ上に、ウィンドウ画面Ｗ１、ウィンドウ画面Ｗ２が表示されており、ウィンドウ画面Ｗ１上にウィンドウ画面Ｗ２が重なって存在する。ここで、符号２４０２に示すように、ベース画面Ｂ上におけるウィンドウ画面Ｗ１との重なりエリアをＶ１、ベース画面Ｂ上におけるウィンドウ画面Ｗ２との重なりエリアをＶ２、ウィンドウ画面Ｗ１上におけるウィンドウ画面Ｗ２との重なりエリアをＶ３とする。
【０１５６】
このときのウィンドウ画面情報テーブルは、ｗｓｃｒｃ［０］をベース画面Ｂとして、ｗｓｃｒｃ［１］をウィンドウ画面Ｗ１として、ｗｓｃｒｃ［２］をウィンドウ画面Ｗ２として割り当てられるとすると、図２２に示すように作成される。ここで、この例におけるベース画面Ｂ、ウィンドウ画面Ｗ１およびウィンドウ画面Ｗ２の位置関係は、上述した図１５の符号１７０１に示された各画面の位置関係と同じであるため、図２２に示されたウィンドウ画面情報テーブルの上位／下位のウィンドウ画面リンク情報（ｗｓｃｒｃ［０］、ｗｓｃｒｃ［１］、ｗｓｃｒｃ［２］の各メンバｕｐｐｅｒ［］、ｌｏｗｅｒ［］）もまた、図１５のウィンドウ画面情報テーブルに示された上位／下位のウィンドウ画面リンク情報と同じである。
【０１５７】
さらに、図２２に示されたウィンドウ画面情報テーブルの各画面間の重なりエリア情報（ｗｓｃｒｃ［０］、ｗｓｃｒｃ［１］、ｗｓｃｒｃ［２］の各メンバｃｒｏｓｓ［］）もまた、図１７のウィンドウ画面情報テーブルに示された重なりエリア情報と同様である。なお、図２２において、Ｖ１、Ｖ２およびＶ３は、それぞれ重なりエリアＶ１、Ｖ２およびＶ３の左上／右上絶対座標を示している。
【０１５８】
このような状態にて、図２３の符号２６０１に示すように、ベース画面Ｂ上に属するある矩形エリア（特に動画エリア、以下、対象矩形エリア）ＤＶ０の再描画要求が発生した際、その対象矩形エリアにおいてウィンドウ画面Ｗ１およびウィンドウ画面Ｗ２によって隠されない矩形部分をコピーする必要が生じる。そこで、矩形分割処理によって、対象矩形エリアの属する画面（この場合は、ベース画面Ｂ）に割り当てられたウィンドウ画面情報テーブルの重なりエリア情報を参照して、対象矩形エリアとの比較を行い、コピーされる矩形部分を導出する。
【０１５９】
図２３においては、まず、ウィンドウ画面Ｗ１と対象矩形エリアＤＶ０とを比較し、対象矩形エリアＤＶ０において、ウィンドウ画面Ｗ１に隠されない矩形エリアＤＶ１を導出する（ステップＳ２６０２）。続いて、ウィンドウ画面Ｗ２と、ステップＳ２６０２において得られた矩形エリアＤＶ１とを比較し、矩形エリアＤＶ１において、ウィンドウ画面Ｗ２に隠されない矩形エリアＤＶ２を導出する（ステップＳ２６０３）。
【０１６０】
ベース画面Ｂ上には、これ以上の重なりエリアは存在しないため、ステップＳ２６０３において得られた矩形エリアＤＶ２が正式なコピー対象の分割矩形エリアとなり、分割矩形エリアＤＶ２をベース画面Ｂにコピーして、再描画要求に対する対象矩形エリアにおいて可視可能な部分の再描画が達成される。
【０１６１】
以上に説明した矩形分割処理を図２４、２５および２６においてＨＣＰにより示す。図２４の矩形分割処理を行うサブルーチン（ステップＳ２７０１）は、第１引数として対象矩形エリアの左上、右下絶対座標を図４に示されたWIND0PAL型で宣言した変数のアドレスを、第２引数として対象矩形エリアの属する画面の重なりエリア情報（左上、右下絶対座標）の格納された先頭アドレス（例えば＆（ｗｓｃｒｃ［０］．ｃｒｏｓｓ［０］））として用いる。
【０１６２】
矩形分割処理においては、対象矩形エリアを分割することにより得られる複数の分割矩形エリアの各座標を格納するための矩形座標テーブル［ｉ］（ｉ＝０〜３）が使用される。
【０１６３】
まず、第２引数の示す対象矩形エリアの属する画面の重なりエリア情報にＮＵＬＬコードが格納されているかを判定する。すなわち重なりエリアがこれ以上存在しないかを判定する（ステップＳ２７０２）。ステップＳ２７０２において、重なりエリアがこれ以上存在しない場合は、矩形座標テーブル［ｋ］（ｋ＝０〜分割矩形エリア数−１）に示された座標に基づいて各分割矩形エリアを対象矩形エリアの属する画面にコピーして（ステップＳ２７０３）、矩形分割処理を終了する。ここで、分割矩形エリア数が０の場合は、コピー処理を行わない。
【０１６４】
ステップＳ２７０２において、重なりエリアがこれ以上存在する場合は、上述した図１０の示すパターン分析を使用して、対象矩形エリアとその対象矩形エリアの属する画面の重なりエリアとの位置関係によって定まる重なりパターンを図２８に示された１７通りのパターンから決定する（ステップＳ２７０４）。この場合、パターン分析は、第２引数として対象矩形エリアの左上、右下絶対座標を図４に示されたWIND0PAL型で宣言した変数のアドレスを用い、第３引数として対象矩形エリアの属する画面の重なりエリア情報（左上、右下絶対座標）の格納された先頭アドレスを用い、第１引数において決定されたパターンコードが得られる。
【０１６５】
矩形分割処理は、ステップＳ２７０４において得られた第１引数の示すパターンコードを元に分割される各分割矩形エリアの座標を、矩形座標テーブルに格納し、ステップＳ２７０４の処理によって各分割矩形エリアのコピー処理を行うサブルーチンである。まず、ステップＳ２７０４において得られたパターンコードがパターンＡ＆＆Ｂ＆＆Ｃ＆＆Ｄを示す場合（ステップＳ２７０５）は、図２７に示された分割矩形エリア２８３１、２８３２、２８３３、２８３４の４つの分割矩形エリアに分割されるので、それぞれの分割矩形エリアの左上／右下絶対座標が矩形座標テーブル［０〜３］にセットされる。
【０１６６】
パターンコードがパターンＣ＆＆Ｂ＆＆Ｄを示す場合（ステップＳ２７０６）は、分割矩形エリア２８１９、２８２０、２８２１の３つの分割矩形エリアに分割されるので、それぞれの分割矩形エリアの左上／右下絶対座標が矩形座標テーブル［０〜２］にセットされ、パターンコードがパターンＢ＆＆Ｄ＆＆Ａを示す場合（ステップＳ２７０７）は、分割矩形エリア２８２２、２８２３、２８２４の３つの分割矩形エリアに分割されるので、それぞれの分割矩形エリアの左上／右下絶対座標が矩形座標テーブル［０〜２］にセットされる。
【０１６７】
また、パターンコードがパターンＣ＆＆Ｄ＆＆Ａを示す場合（ステップＳ２７０８）は、分割矩形エリア２８２５、２８２６、２８２７の３つの分割矩形エリアに分割されるので、それぞれの分割矩形エリアの左上／右下絶対座標が矩形座標テーブル［０〜２］にセットされ、パターンコードがパターンＣ＆＆Ｂ＆＆Ａを示す場合（ステップＳ２７０９）は、分割矩形エリア２８２８、２８２９、２８３０の３つの分割矩形エリアに分割されるので、それぞれの分割矩形エリアの左上／右下絶対座標が矩形座標テーブル［０〜２］にセットされる。
【０１６８】
また、パターンコードがパターンＣ＆＆Ｂを示す場合（ステップＳ２７１０）は、分割矩形エリア２８０７、２８０８の２つの分割矩形エリアに分割されるので、それぞれの分割矩形エリアの左上／右下絶対座標が矩形座標テーブル［０〜１］にセットされ、パターンコードがパターンＢ＆＆Ｄを示す場合（ステップＳ２７１１）は、分割矩形エリア２８０９、２８１０の２つの分割矩形エリアに分割されるので、それぞれの分割矩形エリアの左上／右下絶対座標が矩形座標テーブル［０〜１］にセットされる。
【０１６９】
また、パターンコードがパターンＤ＆＆Ａを示す場合（ステップＳ２７１２）は、分割矩形エリア２８１１、２８１２の２つの分割矩形エリアに分割されるので、それぞれの分割矩形エリアの左上／右下絶対座標が矩形座標テーブル［０〜１］にセットされ、パターンコードがパターンＡ＆＆Ｃを示す場合（ステップＳ２７１３）は、分割矩形エリア２８１３、２８１４の２つの分割矩形エリアに分割されるので、それぞれの分割矩形エリアの左上／右下絶対座標が矩形座標テーブル［０〜１］にセットされる。
【０１７０】
また、パターンコードがパターンＣ＆＆Ｄを示す場合（ステップＳ２７１４）は、分割矩形エリア２８１５、２８１６の２つの分割矩形エリアに分割されるので、それぞれの分割矩形エリアの左上／右下絶対座標が矩形座標テーブル［０〜１］にセットされ、パターンコードがパターンＢ＆＆Ａを示す場合（ステップＳ２７１５）は、分割矩形エリア２８１７、２８１８の２つの分割矩形エリアに分割されるので、それぞれの分割矩形エリアの左上／右下絶対座標が矩形座標テーブル［０〜１］にセットされる。
【０１７１】
さらに、パターンコードがパターンＣを示す場合（ステップＳ２７１６）は、分割矩形エリア２８０１の分割矩形エリアに分割されるので、その分割矩形エリアの左上／右下絶対座標が矩形座標テーブル［０］にセットされ、パターンコードがパターンＢを示す場合（ステップＳ２７１７）は、分割矩形エリア２８０２の分割矩形エリアに分割されるので、その分割矩形エリアの左上／右下絶対座標が矩形座標テーブル［０］にセットされる。
【０１７２】
さらに、パターンコードがパターンＤを示す場合（ステップＳ２７１８）は、分割矩形エリア２８０３の分割矩形エリアに分割されるので、その分割矩形エリアの左上／右下絶対座標が矩形座標テーブル［０］にセットされ、パターンコードがパターンＡを示す場合（ステップＳ２７１９）は、分割矩形エリア２８０４の分割矩形エリアに分割されるので、その分割矩形エリアの左上／右下絶対座標が矩形座標テーブル［０］にセットされる。
【０１７３】
さらにまた、パターンコードがパターンＸを示す場合（ステップＳ２７２０）は、対象矩形エリアとステップＳ２７０１の第２引数として用いられている重なりエリアとの重なりが存在しないことを示すので、対象矩形エリア２８０５の左上／右下絶対座標がそのまま矩形座標テーブル［０］にセットされる。
【０１７４】
また、パターンコードがパターンＹを示す場合（ステップＳ２７２１）は、対象矩形エリアがステップＳ２７０１の第２引数として用いられている重なりエリアに完全に包含されることを示すので、対象矩形エリア２８０６の左上／右下絶対座標は、矩形座標テーブルにセットされずに分割矩形エリア数を０にセットする。
【０１７５】
続いて、ステップＳ２７０１の第２引数として用いられている重なりエリア左上／右下絶対座標の格納されているアドレスをインクリメントして（ステップＳ２７２２）、第ｉ番目の矩形座標テーブル［ｉ］を第１引数として、インクリメントされた重なりエリア左上／右下絶対座標のアドレス（例えば＆（ｗｓｃｒｃ［０］．ｃｒｏｓｓ［１］））を第２引数として、さらに、矩形分割処理を再帰的に繰り返す（ステップＳ２７２３）。ここで、変数ｉは、ステップＳ２７２３はｉ＝０から分割矩形エリア数まで変化させて繰り返される。
【０１７６】
以上に説明した矩形分割処理によって、再帰的に対象矩形エリアと重なりエリアとの比較を行い、図２７に示す分割矩形エリア２８０１から２８３４の矩形分割パターンに分割し、WIND0PAL型で宣言した矩形座標テーブルへ順次分割矩形エリア個数分、分割された矩形の右上、左上絶対座標をセットする。最終的に対象矩形エリアの存在する画面上にこれ以上重なりエリアが存在しない状態となったところで、矩形分割処理を終了し、分割矩形エリア個数分、対象矩形エリアの存在する画面上の矩形座標テーブルに格納されている座標にそれぞれ分割矩形エリアをコピーする処理が行われる。
【０１７７】
また、矩形分割処理において、可視領域を処理し易い矩形エリアに分割することによって、表示メモリエリアへの迅速なコピーが可能になり、さらに可視領域の矩形エリアへの分割を予め設定された分割矩形パターンとのマッチングにより決定することによって、余分な処理を排除し、迅速な矩形エリアの導出が可能になる。
【０１７８】
また、矩形分割処理によって順次導出される一時的な分割矩形エリアに対して、新たに定められる処理を必要とせずに、再び矩形分割処理を利用する再帰処理を行っているので、ＲＯＭ（またはＲＡＭ）に格納されるプログラムにおける命令コードを節約することができ、さらなる迅速な分割矩形エリアの導出が可能になる。
【０１７９】
従って、以上に説明した実施の形態においては、〔重なりチェックおよびウィンドウ画面情報テーブルとのリンク〕を行う処理により、ベース画面上に表示されたウィンドウ画面毎に他のウィンドウ画面とリンクしたウィンドウ画面情報テーブルの作成が可能となる。また、〔リストアンチェイン処理〕によって、閉じようとするウィンドウ画面とのリンクを各ウィンドウ画面の有するウィンドウ画面情報テーブルから解除することが可能となる。さらに再描画要求が発せられた際には、〔矩形分割処理〕によって、再描画の対象となるエリアにおいて他のウィンドウ画面に隠されない領域（可視領域）を分割して一つ以上の分割矩形エリアが導出され、表示メモリエリアへのコピーすなわち表示装置上での表示が可能となる。
【０１８０】
よって、本発明に係る実施の形態によれば、描画更新エリアと、その描画更新エリアの属するウィンドウ画面の上位にオーバーラップするエリアを対象とし、矩形分割処理により可視領域を特定し、可視領域のみを表示メモリエリアにダイレクトにコピーするため、従来の動画と静止画を合成する為に必要であったメインワークエリア１画面分を節約することが可能になる。
【０１８１】
なお、以上に説明した実施の形態において、描画更新エリアを矩形に限定して説明を行ってきたが、円、多角形等のその他の形状の描画更新エリアにも本発明に係るウィンドウ画面表示方法を適用することが可能である。
【０１８２】
【発明の効果】
以上、説明したとおり、この発明によれば、処理対象とするウィンドウ画面と他のウィンドウ画面との位置関係が常にウィンドウ画面情報テーブルに格納されており、新規に開かれるウィンドウ画面または閉じられるウィンドウ画面と、他のすでに表示されているウィンドウ画面との位置関係がこのウィンドウ画面情報テーブルのみの参照および更新によって達成され、複雑な処理を必要としない。そして、可視領域のみを表示メモリエリアにコピーするため、コピー処理量が大幅に削減され、表示処理のスループットが大幅に向上する。また、上記の効果に加えて、特に、閉じられるウィンドウ画面に対するウィンドウ画面情報テーブル上のリンクを解除し、使用されないメモリエリアの開放が可能になる。
【０１８３】
つぎの発明によれば、上記の効果に加えて、予め定められたパターンとのマッチングを行うことで、１のウィンドウ画面と他のウィンドウ画面との重なりエリアを高速に求めることができ、ウィンドウ画面情報テーブルの作成が迅速に行える。
【０１８６】
つぎの発明によれば、上記の効果に加えて、可視領域を処理し易い矩形エリアに分割することによって、表示メモリエリアへの迅速なコピーが可能になる。
【０１８７】
つぎの発明によれば、上記の効果に加えて、可視領域の矩形エリアへの分割を予め設定された分割矩形パターンとのマッチングにより決定することによって、余分な処理を排除し、迅速な矩形エリアの導出が可能になる。
【０１８８】
つぎの発明によれば、請上記の効果に加えて、矩形分割処理によって順次導出される一時的な分割矩形エリアに対して、新たに定められる処理を必要とせずに、再び矩形分割処理を利用することによって、ＲＯＭ（またはＲＡＭ）に格納されるプログラムにおける命令コードを節約することができ、さらなる迅速な分割矩形エリアの導出が可能になる。
【図面の簡単な説明】
【図１】  本発明における描画用ワークメモリの概略メモリマップ図である。
【図２】  表示更新矩形エリアとそのエリアの属する画面上にすでに存在するウィンドウ画面とのオーバーラップを示す図である。
【図３】  本発明に係る画面の上下関係表現の例を説明する図である。
【図４】  本発明に係るウィンドウ画面情報テーブルのＣ言語構造体宣言を示す図である。
【図５】  本発明に係る新規にウィンドウ画面が開かれる時の処理のフローチャートである。
【図６】  本発明に係る重なりチェックおよび他ウィンドウ画面情報テーブルとのリンクサブルーチンのＨＣＰ図である。
【図７】  本発明に係る重なりチェックおよび重なりエリア算出サブルーチンのＨＣＰ図である。
【図８】  本発明に係るパターン分析を説明する図である。
【図９】  本発明に係る重なりパターンを示す図である。
【図１０】  本発明に係るパターン分析サブルーチンのＨＣＰ図である。
【図１１】  本発明に係る分割座標セットサブルーチンのＨＣＰ図である。
【図１２】  本発明に係る分割座標セットサブルーチンのＨＣＰ図である。
【図１３】  本発明に係る分割座標セットサブルーチンのＨＣＰ図である。
【図１４】  本発明に係る新規にウィンドウ画面が開く前後の状態を説明する図である。
【図１５】  図１４におけるウィンドウ画面が開く前の２次元双方向リスト状態およびウィンドウ画面情報テーブルを説明する図である。
【図１６】  図１４におけるウィンドウ画面が開いた後の２次元双方向リスト状態およびウィンドウ画面情報テーブルを説明する図である。
【図１７】  図１４におけるウィンドウ画面が開く前の重なりエリア状態およびウィンドウ画面情報テーブルを説明する図である。
【図１８】  図１４におけるウィンドウ画面が開いた後の重なりエリア状態およびウィンドウ画面情報テーブルを説明する図である。
【図１９】  本発明に係るウィンドウ画面が閉じられる際の処理のフローチャートである。
【図２０】  本発明に係るリストアンチェイン処理のＨＣＰ図である。
【図２１】  本発明に係る矩形分割処理を説明する図である。
【図２２】  図２１におけるウィンドウ画面情報テーブル説明する図である。
【図２３】  図２１における矩形分割処理を詳細に説明する図である。
【図２４】  本発明に係る矩形分割処理のＨＣＰ図である。
【図２５】  本発明に係る矩形分割処理のＨＣＰ図である。
【図２６】  本発明に係る矩形分割処理のＨＣＰ図である。
【図２７】  本発明に係る矩形分割パターンを示す図である。
【図２８】  電子操作盤の概略Ｈ／Ｗブロック図である。
【図２９】  従来における描画用ワークメモリの概略メモリマップ図である。
【図３０】  従来における画面切換え要求時の描画ワークへ対する処理を説明する図である。
【図３１】  従来における動画データ描画時の描画ワークへ対する処理を説明する図である。
【図３２】  従来におけるベース画面ワークエリアとウィンドウ画面ワークエリアの表示メモリエリアへの合成処理例を示す図である。
【符号の説明】
２０１  ＣＰＵ、２０２  ＲＯＭ、２０３  ＲＡＭ（描画ワーク用）、２０４ＲＡＭ（表示用）、２０５  出力装置。
【図１】
0003998325.tif 000002
【図２】
0003998325.tif 000003
【図３】
0003998325.tif 000004
【図４】
0003998325.tif 000005
【図５】
0003998325.tif 000006
【図６】
0003998325.tif 000007
【図７】
0003998325.tif 000008
【図８】
0003998325.tif 000009
【図９】
0003998325.tif 000010
【図１０】
0003998325.tif 000011
【図１１】
0003998325.tif 000012
【図１２】
0003998325.tif 000013
【図１３】
0003998325.tif 000014
【図１４】
0003998325.tif 000015
【図１５】
0003998325.tif 000016
【図１６】
0003998325.tif 000017
【図１７】
0003998325.tif 000018
【図１８】
0003998325.tif 000019
【図１９】
0003998325.tif 000020
【図２０】
0003998325.tif 000021
【図２１】
0003998325.tif 000022
【図２２】
0003998325.tif 000023
【図２３】
0003998325.tif 000024
【図２４】
0003998325.tif 000025
【図２５】
0003998325.tif 000026
【図２６】
0003998325.tif 000027
【図２７】
0003998325.tif 000028
【図２８】
0003998325.tif 000029
【図２９】
0003998325.tif 000030
【図３０】
0003998325.tif 000031
【図３１】
0003998325.tif 000032
【図３２】
0003998325.tif 000033