(57)【要約】【課題】印刷設定入力用のダイアログボックスを表示する際に、利用者が必要とする設定項目を従来より簡単に表示できるようにした印刷処理システム、およびプリンタドライバプログラムを提供すること。【解決手段】アプリケーションは、プリンタドライバの印刷設定ダイアログに関する情報を取得し（Ｓ１０１）、取得した情報をサブメニューとして含む階層構造のメニューを構成する（Ｓ１０３）。そのメニューをＰＣの表示部に表示する際（Ｓ１０５〜Ｓ１１９）、メニュー中には印刷設定ダイアログ内のサブページに関する情報を第１サブメニューとして表示し（Ｓ１１５）、サブページ中に含まれる設定項目に関する情報を第２サブメニューとして表示する（Ｓ１２１）。【選択図】図５
2007206829.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置上で機能するアプリケーションおよびプリンタドライバが連携して、前記情報処理装置からプリンタへ印刷データを送信する処理を実行するように構成された印刷処理システムであって、
前記プリンタドライバは、
前記アプリケーションからの指令に応じて、印刷設定に関するダイアログボックスを表示可能なダイアログボックス表示手段
を備え、
前記アプリケーションは、
前記プリンタドライバが前記ダイアログボックス内に表示する情報の少なくとも一部に相当するダイアログ内情報を取得するダイアログ内情報取得手段と、
階層構造を持つメニューを表示可能で、前記メニュー内には、前記プリンタドライバに対して前記ダイアログボックスの表示を指令するために用意された印刷指令項目が含まれており、前記印刷指令項目にフォーカスを移動させる操作が行われた際には、前記ダイアログ内情報取得手段によって取得された前記ダイアログ内情報を、前記印刷指令項目のサブメニューとして表示するメニュー表示手段
を備えたことを特徴とする印刷処理システム。
【請求項２】
前記プリンタドライバが備える前記ダイアログボックス表示手段は、
前記ダイアログボックスを表示する際に、複数のグループに分類された設定項目の内、前記アプリケーションから指定された１つのグループに属する前記設定項目を、初期表示内容として表示可能で、
前記アプリケーションが備える前記ダイアログ内情報取得手段は、
前記複数のグループそれぞれに対応する複数のグループ情報を、前記ダイアログ内情報として取得し、
前記アプリケーションが備える前記メニュー表示手段は、
前記印刷指令項目のサブメニューとして、前記ダイアログ内情報取得手段によって取得された前記複数のグループ情報を表示可能で、
さらに、前記アプリケーションは、
前記メニュー表示手段が表示した前記メニュー中において、前記複数のグループ情報のいずれかにフォーカスを移動させる操作が行われた後、そのグループ情報の選択を決定する操作が行われた場合に、選択された１つの前記グループ情報に対応する前記グループを指定して前記プリンタドライバに前記ダイアログボックスの表示を指令するダイアログボックス表示指令手段
を備えることを特徴とする請求項１に記載の印刷処理システム。
【請求項３】
前記アプリケーションが備える前記ダイアログ内情報取得手段は、
前記複数のグループそれぞれに属する前記設定項目に対応する設定項目情報を、前記ダイアログ内情報として取得し、
前記アプリケーションが備える前記メニュー表示手段は、
前記印刷指令項目のサブメニューとして表示した前記複数のグループ情報のいずれかにフォーカスを移動させる操作が行われた際に、フォーカスを移動させた１つの前記グループ情報のサブメニューとして、前記ダイアログ内情報取得手段によって取得された取得された前記設定項目情報を表示する
ことを特徴とする請求項２に記載の印刷処理システム。
【請求項４】
前記情報処理装置は、複数の前記プリンタドライバを備えており、
前記アプリケーションが備える前記メニュー表示手段は、
前記印刷指令項目のサブメニューとして、複数の前記プリンタドライバに対応する複数のプリンタドライバ情報を表示可能で、前記複数のプリンタドライバ情報のいずれかにフォーカスを移動させる操作が行われた際に、フォーカスを移動させた１つの前記プリンタドライバ情報のサブメニューとして、前記ダイアログ内情報取得手段によって取得された前記ダイアログ内情報を表示する
ことを特徴とする請求項１〜請求項３のいずれかに記載の印刷処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置上で機能するアプリケーションおよびプリンタドライバが連携して、情報処理装置からプリンタへ印刷データを送信する処理を実行するように構成された印刷処理システムに関する。
【背景技術】
【０００２】
パーソナルコンピュータ（以下、ＰＣと略称する。）等の情報処理装置には、多くの場合、プリンタドライバと呼ばれるソフトウェアが組み込まれている。このプリンタドライバは、通常、プリンタの機種毎（あるいはメーカー毎）に専用のものが用意され、情報処理装置上で機能するアプリケーションにおいて印刷機能が利用された場合には、アプリケーションと連携して情報処理装置からプリンタへ印刷データを送信する処理を実行している。
【０００３】
また、この種のプリンタドライバは、一般に、印刷に関する各種設定項目（例えば、用紙サイズ、印刷方向、印刷枚数、拡大／縮小印刷、カラー／モノクロ印刷、解像度等々）の設定値を利用者が入力するために利用するユーザーインターフェース（以下、ＵＩと略称する。）を持っている。
【０００４】
例えば、下記特許文献１に記載のプリンタドライバの場合、印刷設定入力用のＵＩとして、複数のサブページを備えたダイアログボックスを表示することができる（特許文献１：図４参照）。このようなＵＩを備えていれば、利用者は、各サブページの上部に設けられたタブの選択操作（例えば、ポインティングデバイスを使ってタブをクリックする操作）を行うことにより、ダイアログボックス内に表示されるサブページを切り替えて、各ページに設けられた設定項目に設定値を入力することができた。
【特許文献１】特開２０００−１８７５６８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記のような複数のサブページを備えたダイアログボックスは、従来、ダイアログボックスを表示した際に最初に表示されるサブページ（以下、初期表示ページと称する。）が特定のページに決まっていたため、使い勝手が悪いという問題があった。
【０００６】
より具体的には、例えば、利用者がある印刷項目の設定を変更したい場合に、その印刷項目が初期表示ページ以外のサブページにあることがわかっているとしても、従来は、ダイアログボックスの表示をした際に必ず初期表示ページが表示されてしまう。そのため、初期表示ページ以外のサブページを利用したい場合に、どうしてもタブの選択操作が必要となり、その分操作が煩雑になる、という欠点があった。
【０００７】
また、例えば、利用者がある印刷項目の設定を変更したい場合に、その印刷項目がどのサブページにあるのかわからないこともあるが、そのような場合には、一旦ダイアログボックスを表示した後、試行錯誤で何度も別のタブを選択する操作を行わなければならなかった。そのため、所望の設定項目が含まれるサブページを、従来より簡単に表示できるようなＵＩが望まれていた。
【０００８】
本発明は、上記問題を解決するためになされたものであり、その目的は、印刷設定入力用のダイアログボックスを表示する際に、利用者が必要とする設定項目を従来より簡単に表示できるようにした印刷処理システムを提供することにある。
【課題を解決するための手段】
【０００９】
以下、本発明において採用した特徴的構成について説明する。
本発明の印刷処理システムは、情報処理装置上で機能するアプリケーションおよびプリンタドライバが連携して、前記情報処理装置からプリンタへ印刷データを送信する処理を実行するように構成された印刷処理システムであって、前記プリンタドライバは、前記アプリケーションからの指令に応じて、印刷設定に関するダイアログボックスを表示可能なダイアログボックス表示手段を備え、前記アプリケーションは、前記プリンタドライバが前記ダイアログボックス内に表示する情報の少なくとも一部に相当するダイアログ内情報を取得するダイアログ内情報取得手段と、階層構造を持つメニューを表示可能で、前記メニュー内には、前記プリンタドライバに対して前記ダイアログボックスの表示を指令するために用意された印刷指令項目が含まれており、前記印刷指令項目にフォーカスを移動させる操作が行われた際には、前記ダイアログ内情報取得手段によって取得された前記ダイアログ内情報を、前記印刷指令項目のサブメニューとして表示するメニュー表示手段を備えたことを特徴とする。
【００１０】
この印刷処理システムにおいて、アプリケーションが備えるダイアログ内情報取得手段は、どこからダイアログ内情報を取得するように構成されていてもよいが、一例を挙げれば、例えば、プリンタドライバのインストール時等にレジストリ（ＯＳ（Operating System）が管理する記憶領域）にダイアログ内情報が登録されるようになっていれば、そのレジストリからダイアログ内情報を取得するとよい。この他には、アプリケーションからアクセス可能なファイルにダイアログ内情報が保存されていれば、そのファイルからグループ情報を読み込んでもよいし、情報処理装置においてプリンタドライバ関連のプロセスが常駐していれば、そのプロセスとのプロセス間通信により、ダイアログ内情報を受信するようにしてもよい。
【００１１】
また、アプリケーションが備えるメニュー表示手段において、階層構造を持つメニューを表示可能な点は、従来技術と同じであるが、メニュー内にある印刷指令項目にフォーカスを移動させる操作が行われた際、ダイアログ内情報取得手段によって取得されたダイアログ内情報を印刷指令項目のサブメニューとして表示する点で、従来技術とは相違する。すなわち、ダイアログ内情報は、プリンタドライバが表示するダイアログに関する情報であり、従来はアプリケーション側では全く認識していない情報であったが、そのようなダイアログ内情報をアプリケーション側で取得して、アプリケーションが表示するメニューの一部として表示する点が、従来技術とは相違する。
【００１２】
以上のように構成された印刷処理システムによれば、アプリケーションが表示するメニュー上においてフォーカスを移動させる操作を行うだけで、プリンタドライバがダイアログボックス内に表示する情報の少なくとも一部に相当するダイアログ内情報を、メニューの一部として表示することができる。
【００１３】
したがって、ダイアログを表示した後にしかダイアログ内情報を見ることができなかった従来技術とは異なり、利用者は、プリンタドライバにダイアログボックスを表示させる操作を行う前に、ダイアログ内情報を確認し、ダイアログボックスの表示が必要かどうかを判断することができる。
【００１４】
ところで、本発明の印刷処理システムにおいて、前記プリンタドライバが備える前記ダイアログボックス表示手段は、前記ダイアログボックスを表示する際に、複数のグループに分類された設定項目の内、前記アプリケーションから指定された１つのグループに属する前記設定項目を、初期表示内容として表示可能で、前記アプリケーションが備える前記ダイアログ内情報取得手段は、前記複数のグループそれぞれに対応する複数のグループ情報を、前記ダイアログ内情報として取得し、前記アプリケーションが備える前記メニュー表示手段は、前記印刷指令項目のサブメニューとして、前記ダイアログ内情報取得手段によって取得された前記複数のグループ情報を表示可能で、さらに、前記アプリケーションは、前記メニュー表示手段が表示した前記メニュー中において、前記複数のグループ情報のいずれかにフォーカスを移動させる操作が行われた後、そのグループ情報の選択を決定する操作が行われた場合に、選択された１つの前記グループ情報に対応する前記グループを指定して前記プリンタドライバに前記ダイアログボックスの表示を指令するダイアログボックス表示指令手段を備えると好ましい。
【００１５】
このように構成された印刷処理システムによれば、メニュー中にグループ情報が表示されるので、利用者は、プリンタドライバにダイアログボックスを表示させる操作を行う前に、グループ情報を確認することができる。しかも、利用者は所望のグループを選択すれば、そのグループに属する設定項目が初期表示内容として含まれるダイアログボックスが表示されるので、メニュー上での操作によって、簡単に所望の設定項目に辿り着くことができる。
【００１６】
また、本発明の印刷処理システムにおいて、前記アプリケーションが備える前記ダイアログ内情報取得手段は、前記複数のグループそれぞれに属する前記設定項目に対応する設定項目情報を、前記ダイアログ内情報として取得し、前記アプリケーションが備える前記メニュー表示手段は、前記印刷指令項目のサブメニューとして表示した前記複数のグループ情報のいずれかにフォーカスを移動させる操作が行われた際に、フォーカスを移動させた１つの前記グループ情報のサブメニューとして、前記ダイアログ内情報取得手段によって取得された取得された前記設定項目情報を表示すると好ましい。
【００１７】
このように構成された印刷処理システムによれば、グループ情報にフォーカスを移動させると、そのグループに属する設定項目情報が表示されるので、利用者は、所望のグループをさらに探しやすくなる。
【００１８】
さらに、本発明の印刷処理システムにおいて、前記情報処理装置は、複数の前記プリンタドライバを備えていてもよく、この場合、前記アプリケーションが備える前記メニュー表示手段は、前記印刷指令項目のサブメニューとして、複数の前記プリンタドライバに対応する複数のプリンタドライバ情報を表示可能で、前記複数のプリンタドライバ情報のいずれかにフォーカスを移動させる操作が行われた際に、フォーカスを移動させた１つの前記プリンタドライバ情報のサブメニューとして、前記ダイアログ内情報取得手段によって取得された前記ダイアログ内情報を表示すると好ましい。
【００１９】
このように構成された印刷処理システムによれば、複数のプリンタドライバが存在する場合に、メニュー上で１つのプリンタドライバを選択することができ、選択したプリンタドライバについて、メニュー中にダイアログ内情報が表示されるので、利用者は、ダイアログ内情報を確認し、所望のプリンタドライバかどうか、および、ダイアログボックスの表示が必要かどうかを判断することができる。
【発明を実施するための最良の形態】
【００２０】
次に、本発明の実施形態について一例を挙げて説明する。
［システム全体の構成］
図１は、パーソナルコンピュータ１（以下、ＰＣ１という）と、このＰＣ１に接続されたプリンタ２とを備えたシステムの概略構成を示すブロック図である。
【００２１】
このシステム内に含まれるＰＣ１は、本発明でいう情報処理装置に相当し、このＰＣ１上で機能するアプリケーションおよびプリンタドライバが連携して、ＰＣ１からプリンタ２へ印刷データを送信する処理を実行するように構成された印刷処理システムとして機能するようになっている。
【００２２】
このシステムの内、ＰＣ１は、図１に示すように、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、ハードディスク装置１４（以下、ＨＤＤ１４という）、操作部１５、表示部１６、およびＵＳＢ（Universal Serial Bus）インターフェース１７（以下、ＵＳＢ  Ｉ／Ｆ１７という）などを備えている。
【００２３】
ＣＰＵ１１は、ＲＯＭ１２やＲＡＭ１３に記憶されたプログラムに従って、ＰＣ１各部に対する制御および各種演算を実行する装置で、後述するアプリケーションとしての処理やプリンタドライバとしての処理は、このＣＰＵ１１によって実行される。
【００２４】
ＲＯＭ１２は、ＰＣ１の電源スイッチを切っても記憶内容を保持可能な記憶装置で、ＢＩＯＳ（Basic Input Output System）や通常であれば更新されない読み出し用のデータ等を記憶している。
【００２５】
ＲＡＭ１３は、ＣＰＵ１１から直接アクセスされるメインメモリ等として利用される記憶装置である。このＲＡＭ１３には、ＯＳ（Operating System）や各種アプリケーションなどのソフトウェアがＨＤＤ１４から読み込まれ、また、ＣＰＵ１１による各種演算の結果やＨＤＤ１４から読み込まれたデータもＲＡＭ１３に記憶されるようになっている。後述するアプリケーションとしての処理やプリンタドライバとしての処理を実行する際には、各処理をＣＰＵ１１に実行させるためのプログラム（アプリケーションプログラムやプリンタドライバプログラム）がＨＤＤ１４からＲＡＭ１３に読み込まれ、ＲＡＭ１３に記憶されたプログラムに従って、ＣＰＵ１１が各処理を実行することになる。
【００２６】
ＨＤＤ１４は、ＯＳ、各種アプリケーションプログラム、および各種データファイルを保存しておくための装置で、上記アプリケーションプログラムやプリンタドライバプログラムもＨＤＤ１４に保存されている。
【００２７】
操作部１５は、利用者からの各種指示を入力するための入力装置であり、例えば、キーボードや各種ポインティングデバイス（例えば、マウス）等によって構成される。
表示部１６は、各種情報を利用者に提示するための出力装置であり、例えば、カラー画像を表示可能な液晶ディスプレイ等によって構成される。
【００２８】
ＵＳＢ  Ｉ／Ｆ１７は、プリンタおよびその他の周辺機器を接続可能なシリアルインターフェースである。
なお、本実施形態において、ＰＣ１には、マルチタスク機能を備えたＯＳが搭載され、複数のプロセスが並列に機能するとともに、それら複数のプロセスが連携して各種処理を実行するようになっている。本発明の印刷処理システムを構成するアプリケーションおよびプリンタドライバも、それぞれがＯＳの制御下で機能する１または２以上のプロセスにより構成され、それらアプリケーションのプロセスおよびプリンタドライバのプロセスが連携して、ＰＣ１からプリンタ２へ印刷データを送信する処理を実行する。また、ＰＣ１に搭載されたＯＳは、マルチウィンドウ機能を備え、後述するアプリケーションおよびプリンタドライバは、それぞれのＵＩとなるウィンドウをＯＳの制御下で表示するようになっている。以上のような機能を有するＯＳの具体例としては、Ｗｉｎｄｏｗｓ（登録商標）、ＭａｃＯＳ（登録商標）などを挙げることができる。この種のＯＳが備える各種機能そのものは公知なので、ここでの詳細な説明は省略するが、以下の説明においては、ＰＣ１が、上記のようなＯＳによって提供される各種機能を有するとの前提で説明を続ける。
【００２９】
プリンタ２は、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、ＨＤＤ２４、操作キー２５、表示パネル２６、ＵＳＢ  Ｉ／Ｆ２７、印字部２９などを備えている。
ＣＰＵ２１は、ＲＯＭ２２に記憶されている制御プログラムに従ってプリンタ２各部の制御および各種演算を実行する装置である。
【００３０】
ＲＯＭ２２は、プリンタ２の電源スイッチを切っても記憶内容を保持可能な記憶装置で、上記制御プログラムの他、通常であれば更新されない読み出し用の各種データを記憶している。
【００３１】
ＲＡＭ２３は、ＣＰＵ２１から直接アクセスされるメインメモリ等として利用される記憶装置で、ＣＰＵ２１が処理中に算出する各種データなどが一時的にＲＡＭ２３に記憶されるようになっている。
【００３２】
ＨＤＤ２４は、ＲＡＭ２３だけでは記憶しきれない大きなサイズのデータを記憶するための記憶装置である。
操作キー２５は、利用者がマニュアル操作でプリンタ２に対して指令を与える場合に操作する入力装置である。
【００３３】
表示パネル２６は、小型液晶ディスプレイによって構成された装置で、プリンタ２の設定や状態などの情報を表示できるようになっている。
ＵＳＢ  Ｉ／Ｆ２７は、ＰＣを接続可能なシリアルインターフェースである。
【００３４】
印字部２９は、シート状の媒体（例えば記録用紙）を給紙部から排紙部へと搬送する搬送機構、この搬送機構による搬送経路の途中で前記媒体に対して画像を記録する記録機構などによって構成される。
【００３５】
［印刷処理システムが備えるＵＩの概要］
次に、ＰＣ１上で機能する印刷処理システムが備えるＵＩの概要について、図２〜図４に基づいて説明する。
【００３６】
図２は、ＰＣ１の表示部１６に表示される画面（アプリケーションのウィンドウ、およびプリンタドライバのダイアログ）の遷移と、画面遷移の契機となるイベントないし操作とを併記した説明図である。また、図３は、アプリケーションのウィンドウ内に表示されるメニューを例示した説明図、図４は、プリンタドライバの表示するダイアログボックスを例示した説明図である。
【００３７】
以下の説明においては、ポインティングデバイスとしてマウスを使用するものとし、マウスのボタンを押す操作をマウスＤｏｗｎ操作、マウスのボタンを放す操作をマウスＵｐ操作と呼ぶ。また、マウスＤｏｗｎ操作後にマウスＵｐ操作をしないままマウスカーソルを移動させる操作をマウスＤｒａｇ操作と呼ぶ。さらに、短時間で続けてマウスＤｏｗｎ操作およびマウスＵｐ操作を行うことをクリック操作と呼ぶ。なお、周知の通り、一般に、ＰＣにおける各種マウス操作は、キーボード等、他の入力デバイスを使っても同等な代替操作を実現できるように構成されていることが多く、本実施形態においても、上記マウスＤｏｗｎ操作、マウスＵｐ操作、マウスＤｒａｇ操作、クリック操作がなされたとＰＣ１が認識するような代替操作を、他の入力デバイスを使って実施できる。ただし、他の入力デバイスで代替操作ができること自体は本発明の要部ではなく、また、他の入力デバイスによる代替操作をすべて説明すると煩雑になるので、以下の説明においては、マウスによる操作のみを説明し、他の入力デバイスによる代替操作については、その具体的な説明を省略する。
【００３８】
さて、図２に示した各画面は、図中左上にあるアプリケーションメイン画面を起点として遷移するもので、このアプリケーションメイン画面は、ＰＣ１においてアプリケーションを起動した際、アプリケーションがＰＣ１の表示部１６に表示する。
【００３９】
このアプリケーションメイン画面内においては、利用者が「Ｆｉｌｅ」メニュー選択操作を行うことにより、アプリケーションが表示する画面を、図２中に示した＜メニュー１＞へと遷移させることができる。より詳しくは、図３（ａ）に示すように、ＰＣ１の表示部１６には、マウス操作に応じて移動するマウスカーソル３１や、メニューバー３２を備えたアプリケーションメイン画面が表示されている。ここで、利用者がマウスを操作してマウスカーソル３１でメニューバー３２の中にある「Ｆｉｌｅ」３３をポイントし、マウスＤｏｗｎ操作を行った場合に、「Ｆｉｌｅ」メニュー選択操作を行ったことになる。そして、この「Ｆｉｌｅ」メニュー選択操作が行われると、ＰＣ１の表示部１６には「Ｆｉｌｅ」メニュー３４が表示され、その結果、図２中に示した＜メニュー１＞へ遷移したことになる。この「Ｆｉｌｅ」メニュー３４の中には、「Ｐｒｉｎｔ」３５が他の項目とともに表示される。
【００４０】
次に、この状態で、利用者がマウスＤｒａｇ操作を行うことにより、アプリケーションが表示する画面を、図２中に示した＜メニュー１＞から＜メニュー２＞へと遷移させることができる。より詳しくは、図３（ｂ）に示すように、上記「Ｆｉｌｅ」メニュー選択操作に相当するマウスＤｏｗｎ操作に引き続いて、利用者がマウスＤｒａｇ操作を行って、マウスカーソル３１を「Ｆｉｌｅ」メニュー３４内へと移動させると、「Ｆｉｌｅ」メニュー３４内にはマウスカーソル３１に追従して移動するフォーカス３６が現れ、このフォーカス３６を「Ｐｒｉｎｔ」３５へと移動させると、「Ｐｒｉｎｔ」３５の隣に「Ｐｒｉｎｔ」サブメニュー３７が表示され、その結果、図２中に示した＜メニュー２＞へ遷移したことになる。この「Ｐｒｉｎｔ」サブメニュー３７の中には、「Ｂａｓｅ」３８、「Ａｄｖａｎｃｅｄ」３９、および「Ｐａｇｅ  Ｓｅｔｕｐ」４０といった項目が表示される。これら「Ｐｒｉｎｔ」サブメニュー３７内の各項目は、後述する印刷設定ダイアログボックス内に、どのようなサブページがあるのかを示している。なお、詳しくは後述するが、ここで表示される「Ｂａｓｅ」、「Ａｄｖａｎｃｅｄ」、および「Ｐａｇｅ  Ｓｅｔｕｐ」といった文字列は、プリンタドライバがレジストリに登録した情報であるが、その情報をアプリケーションがレジストリから取得して、「Ｐｒｉｎｔ」サブメニュー３７の中に表示している。
【００４１】
次に、この状態で、利用者が引き続きマウスＤｒａｇ操作を行うことにより、アプリケーションが表示する画面を、図２中に示した＜メニュー２＞から＜メニュー３＞へと遷移させることができる。より詳しくは、図３（ｃ）に示すように、利用者が既に行っているマウスＤｒａｇ操作を継続して、マウスカーソル３１を「Ｐｒｉｎｔ」サブメニュー３７内へと移動させると、「Ｐｒｉｎｔ」サブメニュー３７内にはマウスカーソル３１に追従して移動するフォーカス４１が現れ、このフォーカス４１を「Ｂａｓｅ」３８へと移動させると、「Ｂａｓｅ」３８の隣に「Ｂａｓｅ」サブメニュー４２が表示され、その結果、図２中に示した＜メニュー３＞へ遷移したことになる。この「Ｂａｓｅ」サブメニュー４２の中には、「Ｐｒｉｎｔ  Ｑｕａｌｉｔｙ」、および「Ｍｅｄｉａ  Ｔｙｐｅ」といった項目が表示される。これら「Ｂａｓｅ」サブメニュー４２内の各項目は、後述する印刷設定ダイアログボックス内にある「Ｂａｓｅ」サブページに、どのような設定項目があるのかを示している。なお、ここで表示される「Ｐｒｉｎｔ  Ｑｕａｌｉｔｙ」、および「Ｍｅｄｉａ  Ｔｙｐｅ」といった文字列も、先に説明した「Ｐｒｉｎｔ」サブメニュー３７内の文字列と同様、プリンタドライバがレジストリに登録した情報であるが、その情報をアプリケーションがレジストリから取得して、「Ｂａｓｅ」サブメニュー４２の中に表示している。
【００４２】
次に、この状態で、利用者が引き続きマウスＤｒａｇ操作を行うことにより、アプリケーションが表示する画面を、図２中に示した＜メニュー３＞から＜メニュー４＞へと遷移させることができる。より詳しくは、図３（ｄ）に示すように、利用者が既に行っているマウスＤｒａｇ操作を継続して、フォーカス４１を「Ａｄｖａｎｃｅｄ」３９へと移動させると、「Ａｄｖａｎｃｅｄ」３９の隣に「Ａｄｖａｎｃｅｄ」サブメニュー４３が表示され、その結果、図２中に示した＜メニュー４＞へ遷移したことになる。この「Ａｄｖａｎｃｅｄ」サブメニュー４３の中には、「Ｔｏｎｅｒ  Ｓａｖｅ  Ｍｏｄｅ」、および「Ｓｌｅｅｐ  Ｔｉｍｅ」といった項目が表示される。これら「Ａｄｖａｎｃｅｄ」サブメニュー４３内の各項目は、後述する印刷設定ダイアログボックス内にある「Ａｄｖａｎｃｅｄ」サブページに、どのような設定項目があるのかを示している。なお、ここで表示される「Ｔｏｎｅｒ  Ｓａｖｅ  Ｍｏｄｅ」、および「Ｓｌｅｅｐ  Ｔｉｍｅ」といった文字列も、先に説明した「Ｐｒｉｎｔ」サブメニュー３７、あるいは「Ｂａｓｅ」サブメニュー４２内の文字列と同様、プリンタドライバがレジストリに登録した情報であるが、その情報をアプリケーションがレジストリから取得して、「Ａｄｖａｎｃｅｄ」サブメニュー４３の中に表示している。
【００４３】
さらに、この状態で、利用者が引き続きマウスＤｒａｇ操作を行うことにより、アプリケーションが表示する画面を、図２中に示した＜メニュー４＞から＜メニュー５＞へと遷移させることができる。より詳しくは、図３（ｅ）に示すように、利用者が既に行っているマウスＤｒａｇ操作を継続して、フォーカス４１を「Ｐａｇｅ  Ｓｅｔｕｐ」４０へと移動させると、「Ｐａｇｅ  Ｓｅｔｕｐ」４０の隣に「Ｐａｇｅ  Ｓｅｔｕｐ」サブメニュー４４が表示され、その結果、図２中に示した＜メニュー５＞へ遷移したことになる。この「Ｐａｇｅ  Ｓｅｔｕｐ」サブメニュー４４の中には、「Ｐａｇｅ  Ｓｉｚｅ」、「Ｏｒｉｅｎｔａｔｉｏｎ」、および「Ｓｃａｌｉｎｇ」といった項目が表示される。これら「Ｐａｇｅ  Ｓｅｔｕｐ」サブメニュー４４内の各項目は、後述する印刷設定ダイアログボックス内にある「Ｐａｇｅ  Ｓｅｔｕｐ」サブページに、どのような設定項目があるのかを示している。なお、ここで表示される「Ｐａｇｅ  Ｓｉｚｅ」、「Ｏｒｉｅｎｔａｔｉｏｎ」、および「Ｓｃａｌｉｎｇ」といった文字列も、先に説明した「Ｐｒｉｎｔ」サブメニュー３７、「Ｂａｓｅ」サブメニュー４２、あるいは「Ａｄｖａｎｃｅｄ」サブメニュー４３内の文字列と同様、プリンタドライバがレジストリに登録した情報であるが、その情報をアプリケーションがレジストリから取得して、「Ｐａｇｅ  Ｓｅｔｕｐ」サブメニュー４４の中に表示している。
【００４４】
以上のような＜メニュー１＞から＜メニュー５＞に至る画面遷移は、利用者が既に行っているマウスＤｒａｇ操作を継続する限り続くことになり、その中で＜メニュー３＞、＜メニュー４＞、または＜メニュー５＞への画面遷移が発生すると、各画面遷移が発生する毎に「Ｂａｓｅ」サブメニュー４２、「Ａｄｖａｎｃｅｄ」サブメニュー４３、または「Ｐａｇｅ  Ｓｅｔｕｐ」サブメニュー４４のいずれかが表示されることになる。
【００４５】
一方、アプリケーションの表示する画面が＜メニュー３＞、＜メニュー４＞、または＜メニュー５＞へ遷移したところで、マウスＤｒａｇ操作を行っていた利用者がマウスＵｐ操作を行うと、その場合は、「Ｂａｓｅ」３８、「Ａｄｖａｎｃｅｄ」３９、または「Ｐａｇｅ  Ｓｅｔｕｐ」４０の選択操作が確定したことになる。これら「Ｂａｓｅ」３８、「Ａｄｖａｎｃｅｄ」３９、および「Ｐａｇｅ  Ｓｅｔｕｐ」４０は、いずれもプリンタドライバに対して印刷設定ダイアログボックス５１の表示を指令するために用意された印刷指令項目のサブメニューであり、これらいずれかの選択操作が確定した場合、その時点で、アプリケーションはプリンタドライバに対してダイアログの表示を指令し、この指令を受けたプリンタドライバは、図４（ａ）〜同図（ｃ）に示す印刷設定ダイアログボックス５１を表示する。また、このとき、アプリケーションが表示する画面においては、「Ｆｉｌｅ」メニュー３４以降の階層型メニュー全体（図３に示した例では、「Ｆｉｌｅ」メニュー３４および「Ｐｒｉｎｔ」サブメニュー３７）が消去される。
【００４６】
プリンタドライバが表示する印刷設定ダイアログボックス５１内には、「Ｂａｓｅ」サブページ５２、「Ａｄｖａｎｃｅｄ」サブページ５３、「Ｐａｇｅ  Ｓｅｔｕｐ」サブページ５４、Ｃａｎｃｅｌボタン５５、およびＰｒｉｎｔボタン５６などが設けられている。そして、「Ｂａｓｅ」サブページ５２、「Ａｄｖａｎｃｅｄ」サブページ５３、および「Ｐａｇｅ  Ｓｅｔｕｐ」サブページ５４には、図４（ａ）〜同図（ｃ）に示すように、類似した機能毎にグループ分けされた設定項目について、各設定項目の設定値を入力ないし選択するための各種コントロールが設けられている。
【００４７】
ただし、「Ｂａｓｅ」サブページ５２、「Ａｄｖａｎｃｅｄ」サブページ５３、および「Ｐａｇｅ  Ｓｅｔｕｐ」サブページ５４は重ねて表示されるようになっており、いずれか１つのサブページだけが利用者側から見て最も手前に重なるように表示される。詳しくは後述する処理の説明の中でも触れるが、どのサブページを最も手前に重なるように表示すべきかは、アプリケーション側で指定し、プリンタドライバは、アプリケーションから指定されたサブページを最も手前に重ねて表示する。
【００４８】
図２中に示した＜メニュー３＞へ遷移したところで、マウスＤｒａｇ操作を行っていた利用者がマウスＵｐ操作を行った場合、アプリケーションは「Ｂａｓｅ」サブページ５２を指定して、印刷設定ダイアログボックス５１の表示を指令する。これは、フォーカス４１が移動した「Ｂａｓｅ」３８に対応するサブページが、「Ｂａｓｅ」サブページ５２となっているからである。その結果、印刷設定ダイアログボックス５１は、「Ｂａｓｅ」サブページ５２が利用者側から見て最も手前に重なるように表示されることになる。
【００４９】
また、図２中に示した＜メニュー４＞へ遷移したところで、マウスＤｒａｇ操作を行っていた利用者がマウスＵｐ操作を行った場合、アプリケーションは「Ａｄｖａｎｃｅｄ」サブページ５３を指定して、印刷設定ダイアログボックス５１の表示を指令する。これは、フォーカス４１が移動した「Ａｄｖａｎｃｅｄ」３９に対応するサブページが、「Ａｄｖａｎｃｅｄ」サブページ５３となっているからである。その結果、印刷設定ダイアログボックス５１は、「Ａｄｖａｎｃｅｄ」サブページ５３が利用者側から見て最も手前に重なるように表示されることになる。
【００５０】
さらに、図２中に示した＜メニュー５＞へ遷移したところで、マウスＤｒａｇ操作を行っていた利用者がマウスＵｐ操作を行った場合、アプリケーションは「Ｐａｇｅ  Ｓｅｔｕｐ」サブページ５４を指定して、印刷設定ダイアログボックス５１の表示を指令する。これは、フォーカス４１が移動した「Ｐａｇｅ  Ｓｅｔｕｐ」４０に対応するサブページが、「Ｐａｇｅ  Ｓｅｔｕｐ」サブページ５４となっているからである。その結果、印刷設定ダイアログボックス５１は、「Ｂａｓｅ」サブページ５２が利用者側から見て最も手前に重なるように表示されることになる。
【００５１】
なお、以下の説明では、図４（ａ）に示すように「Ｂａｓｅ」サブページ５２が利用者側から見て最も手前に重なるように表示された状態を＜ダイアログ１＞、図４（ｂ）に示すように「Ａｄｖａｎｃｅｄ」サブページ５３が利用者側から見て最も手前に重なるように表示された状態を＜ダイアログ２＞、図４（ｃ）に示すように「Ｐａｇｅ  Ｓｅｔｕｐ」サブページ５４が利用者側から見て最も手前に重なるように表示された状態を＜ダイアログ３＞と呼ぶ。
【００５２】
印刷設定ダイアログボックス５１が表示された場合、印刷設定ダイアログボックス５１内での各種操作を行うことができる。例えば、利用者が印刷設定ダイアログボックス５１内にある「Ｂａｓｅ」サブページ５２、「Ａｄｖａｎｃｅｄ」サブページ５３、または「Ｐａｇｅ  Ｓｅｔｕｐ」サブページ５４のいずれかを選択する操作（＝各サブページの上部にあるタブをマウスでクリックする操作）を行えば、印刷設定ダイアログボックス５１の表示内容を、＜ダイアログ１＞、＜ダイアログ２＞、または＜ダイアログ３＞のいずれかへ切り替えることができる。また、各サブページ内に設けられた各種コントロールへの入力操作により、利用者が所望の印刷設定を行ったら、印刷設定ダイアログボックス５１内にあるＰｒｉｎｔボタン５６をクリックすることにより、プリンタ２への印刷出力を指令することができる。こうしてプリンタ２への印刷出力が指令された場合、従来技術と同様に、アプリケーションおよびプリンタドライバは、連携してＰＣ１からプリンタ２へ印刷データを送信する処理を実行する。また、このとき、プリンタドライバは、印刷設定ダイアログボックス５１を消去する。なお、アプリケーションが表示するアプリケーションメイン画面は、ＰＣ１の表示部１６に残されることになる。
【００５３】
ちなみに、＜メニュー２＞へ遷移した後、その時点で利用者がマウスＵｐ操作を行った場合、アプリケーションが表示する画面においては、「Ｆｉｌｅ」メニュー３４以降の階層型メニュー全体（図３に示した例では、「Ｆｉｌｅ」メニュー３４および「Ｐｒｉｎｔ」サブメニュー３７）が消去され、プリンタドライバは＜ダイアログ１＞を表示する。つまり、＜ダイアログ１＞を表示させたい場合に限り、＜メニュー２＞へ遷移した後に、直ちにマウスＵｐ操作を行ってもよい。ただし、＜メニュー２＞へ遷移した後に、直ちにマウスＵｐ操作を行った場合、上述の「Ｂａｓｅ」サブメニュー４２、「Ａｄｖａｎｃｅｄ」サブメニュー４３、および「Ｐａｇｅ  Ｓｅｔｕｐ」サブメニュー４４の表示は行われず、この挙動は、従来技術においてアプリケーションからプリンタドライバのＵＩを呼び出す場合と同じ挙動になる。
【００５４】
［アプリケーションおよびプリンタドライバが実行する処理］
次に、上記のような画面遷移を伴うＵＩを実現するためにアプリケーションおよびプリンタドライバが実行する処理について、図５および図６のフローチャートに基づいて説明する。図５に示す処理は、ＰＣ１において、利用者が所定の操作を行ってアプリケーションを起動した際に、アプリケーションのプロセスとして実行される処理であり、以下の説明においては、アプリケーション処理と称する。また、図６は、アプリケーション処理の中でプリンタドライバに対して印刷設定ダイアログの表示が指令された際に、プリンタドライバのプロセスとして実行される処理であり、以下の説明においては、プリンタドライバ処理と称する。
【００５５】
アプリケーション処理を開始すると、図５に示すように、ＰＣ１は、まず、デフォルトプリンタドライバの情報を取得する（Ｓ１０１）。デフォルトプリンタドライバの情報は、そのプリンタドライバをＰＣ１にインストールした際に、ＰＣ１のレジストリに登録されており、Ｓ１０１の処理では、デフォルトプリンタドライバの情報をレジストリから取得する。ここで取得されるデフォルトプリンタドライバの情報は、図７（ａ）に示すような情報群である。これらの情報の内、「Ｐｒｉｎｔサブメニュー表示構成」は、上述した「Ｐｒｉｎｔ」サブメニュー３７の中に選択肢として表示される情報であり、これは、印刷設定ダイアログボックス５１内にある３つのサブページを示す情報でもある。また、「印刷設定ダイアログ処理モジュールポインタ」および「印刷実行処理モジュールポインタ」は、プリンタドライバ内に含まれる「印刷設定ダイアログ処理モジュール」、「印刷実行処理モジュール」へのポインタで、後述する処理の中では、これらのポインタが示すアドレスを指定して各処理モジュールを呼び出すことにより、プリンタドライバに対して各処理の実行を指令することになる。
【００５６】
続いて、ＰＣ１は、Ｓ１０１の処理で取得した「Ｐｒｉｎｔサブメニュー表示構成」に基づいて、「Ｐｒｉｎｔ」メニューのツリー構造を設定する（Ｓ１０３）。図７（ａ）に例示した「Ｐｒｉｎｔサブメニュー表示構成」の場合、階層構造が２階層で、各階層内には２つないし３つの選択肢が含まれているので、アプリケーションが表示する「Ｐｒｉｎｔ」メニューの構造も、１階層目となる「Ｐｒｉｎｔ」サブメニュー３７と、２階層目となる「Ｂａｓｅ」サブメニュー４２、「Ａｄｖａｎｃｅｄ」サブメニュー４３、および「Ｐａｇｅ  Ｓｅｔｕｐ」サブメニュー４４が用意され、各階層内に２つ〜３つの選択肢（「Ｐｒｉｎｔ」サブメニュー３７内には、「Ｂａｓｅ」３８、「Ａｄｖａｎｃｅｄ」３９、および「Ｐａｇｅ  Ｓｅｔｕｐ」４０、「Ｂａｓｅ」サブメニュー４２内には、「Ｐｒｉｎｔ  Ｑｕａｌｉｔｙ」、および「Ｍｅｄｉａ  Ｔｙｐｅ」、「Ａｄｖａｎｃｅｄ」サブメニュー４３内には、「Ｔｏｎｅｒ  Ｓａｖｅ  Ｍｏｄｅ」、および「Ｓｌｅｅｐ  Ｔｉｍｅ」、「Ｐａｇｅ  Ｓｅｔｕｐ」サブメニュー４４内には、「Ｐａｇｅ  Ｓｉｚｅ」、「Ｏｒｉｅｎｔａｔｉｏｎ」、および「Ｓｃａｌｉｎｇ」）が用意される。
【００５７】
次に、ＰＣ１は、「Ｆｉｌｅ」メニューの選択イベントがあるか否かを判断し（Ｓ１０５）、「Ｆｉｌｅ」メニューの選択イベントがない場合は（Ｓ１０５：ＮＯ）、その他の処理を実行し（Ｓ１０７）、Ｓ１０５の処理へと戻る。このＳ１０５〜Ｓ１０７のループ処理の中で、「Ｆｉｌｅ」メニューの選択イベントがあった場合は（Ｓ１０５：ＹＥＳ）、Ｓ１０９の処理へと移行する。「Ｆｉｌｅ」メニューの選択イベントは、上述の「Ｆｉｌｅ」メニュー選択操作に相当するマウスＤｏｗｎ操作によって発生し、マウスＤｏｗｎ操作に伴うイベントが発生したことは、ＯＳによって検出されてアプリケーションに通知される。なお、Ｓ１０７の処理（その他の処理）は、「Ｆｉｌｅ」メニューの選択イベントがない場合に実行される様々な処理を包含しており、このＳ１０７の処理の中で、さらに様々な別のイベントに対応する処理が実行される。ただし、それらの処理は本発明の要部には関連しない処理となるので、以下、本発明の要部に関連しない処理は、すべて「その他の処理」とのみ説明し、その詳細な説明を省略することにする。
【００５８】
さて、Ｓ１０９の処理へ移行すると、ＰＣ１は、「Ｆｉｌｅ」メニュー３４を表示して（Ｓ１０９）、「Ｐｒｉｎｔ」メニューの選択イベントがあるか否かを判断し（Ｓ１１１）、「Ｐｒｉｎｔ」メニューの選択イベントがない場合は（Ｓ１１１：ＮＯ）、その他の処理を実行し（Ｓ１１３）、Ｓ１１１の処理へと戻る。このＳ１１１〜Ｓ１１３のループ処理の中で、「Ｐｒｉｎｔ」メニューの選択イベントがあった場合は（Ｓ１１１：ＹＥＳ）、Ｓ１１５の処理へと移行する。「Ｐｒｉｎｔ」メニューの選択イベントは、上述のフォーカス３６を「Ｐｒｉｎｔ」３５へと移動させる操作に相当するマウスＤｒａｇ操作によって発生し、マウスＤｒａｇ操作に伴うイベントが発生したことは、ＯＳによって検出されてアプリケーションに通知される。
【００５９】
Ｓ１１５の処理へ移行すると、ＰＣ１は、「Ｐｒｉｎｔ」３５をフォーカスして、第１サブメニュー（本実施形態の場合、「Ｐｒｉｎｔ」サブメニュー３７）を表示して（Ｓ１１５）、第１サブメニューの選択イベントがあるか否かを判断し（Ｓ１１７）、第１サブメニューの選択イベントがない場合は（Ｓ１１７：ＮＯ）、その他の処理を実行し（Ｓ１１９）、Ｓ１１７の処理へと戻る。このＳ１１７〜Ｓ１１９のループ処理の中で、第１サブメニューの選択イベントがあった場合は（Ｓ１１７：ＹＥＳ）、Ｓ１２１の処理へと移行する。第１サブメニューの選択イベントは、上述のフォーカス４１を「Ｂａｓｅ」３８、「Ａｄｖａｎｃｅｄ」３９、または「Ｐａｇｅ  Ｓｅｔｕｐ」４０のいずれかへと移動させる操作に相当するマウスＤｒａｇ操作によって発生し、マウスＤｒａｇ操作に伴うイベントが発生したことは、ＯＳによって検出されてアプリケーションに通知される。なお、上述のフォーカス４１を「Ｂａｓｅ」３８、「Ａｄｖａｎｃｅｄ」３９、または「Ｐａｇｅ  Ｓｅｔｕｐ」４０のいずれかへと移動させる操作が行われる前の段階で、マウスＵｐ操作が行われることにより、マウスＤｒａｇ操作が中断されると、Ｓ１１９の処理へ移行する。この場合、Ｓ１１９の処理の中では、印刷設定ダイアログボックス５１の表示を行う処理が行われることになるが、既に説明した通り、後述する第２サブメニューの表示を行うことなく印刷設定ダイアログボックス５１の表示を行う処理自体は、従来技術と差異がない処理になるので、詳細な説明は省略する。
【００６０】
さて、Ｓ１２１の処理へ移行すると、ＰＣ１は、第１サブメニュー（＝「Ｂａｓｅ」３８、「Ａｄｖａｎｃｅｄ」３９、または「Ｐａｇｅ  Ｓｅｔｕｐ」４０のいずれか）をフォーカスして、第２サブメニュー（本実施形態の場合、「Ｂａｓｅ」サブメニュー４２、「Ａｄｖａｎｃｅｄ」サブメニュー４３、または「Ｐａｇｅ  Ｓｅｔｕｐ」サブメニュー４４のいずれか）を表示する（Ｓ１２１）。
【００６１】
続いて、ＰＣ１は、第１サブメニューの決定イベントがあるか否かを判断し（Ｓ１２５）、第１サブメニューの決定イベントがない場合は（Ｓ１２５：ＮＯ）、引き続いて、サブメニューの選択が外れたか否かを判断する（Ｓ１２７）。そして、サブメニューの選択が外れていない場合は（Ｓ１２７：ＮＯ）、その他の処理を実行し（Ｓ１２９）、Ｓ１２５の処理へと戻る。このＳ１２５〜Ｓ１２９のループ処理の中で、第１サブメニューの決定イベントがあった場合は（Ｓ１２５：ＹＥＳ）、Ｓ１３１の処理へと移行する。第１サブメニューの決定イベントは、上述のフォーカス４１を「Ｂａｓｅ」３８、「Ａｄｖａｎｃｅｄ」３９、または「Ｐａｇｅ  Ｓｅｔｕｐ」４０のいずれかへと移動させた後のマウスＵｐ操作によって発生し、マウスＵｐ操作に伴うイベントが発生したことは、ＯＳによって検出されてアプリケーションに通知される。
【００６２】
Ｓ１３１の処理へ移行すると、ＰＣ１は、メニュー表示を終了して、タブ（ページ）選択番号を設定する（Ｓ１３１）。このＳ１３１の処理は、後述するＳ１３３の処理で引数となる値を設定する処理で、ここで設定されるタブ（ページ）選択番号は、フォーカス４１が「Ｂａｓｅ」３８へ移動している場合は「１」、「Ａｄｖａｎｃｅｄ」３９へ移動している場合は「２」、「Ｐａｇｅ  Ｓｅｔｕｐ」４０へ移動している場合は「３」とされる。これらのタブ（ページ）選択番号「１」〜「３」は、プリンタドライバ側で規定した値であるが、その値は、Ｓ１０１の処理によってレジストリから取得した「Ｐｒｉｎｔサブメニュー表示構成」の中に含まれているので、プリンタドライバ側と整合する適切な値をアプリケーション側でも使用することができる。
【００６３】
続いて、ＰＣ１は、印刷設定ダイアログ処理を実行する（Ｓ１３３）。このＳ１３３の処理では、具体的には、Ｓ１０１の処理によってレジストリから取得した「印刷設定ダイアログ処理モジュールポインタ」が示す処理モジュールを呼び出すことにより、プリンタドライバに対して、印刷設定ダイアログボックス５１の表示を指令する。このとき、アプリケーションからプリンタドライバへは、図７（ｂ）に示す引数が渡される。この引数は、Ｓ１３１の処理で設定したタブ（ページ）選択番号であり、表示させるべきサブページに応じて「１」〜「３」のいずれかとなる。
【００６４】
なお、Ｓ１３３の処理を実行することにより、このアプリケーション処理と並行してプリンタドライバ処理（図６参照）が実行され、これにより、印刷設定ダイアログボックス５１の表示が行われることになるが、プリンタドライバ処理の詳細については後述することにする。
【００６５】
さて、Ｓ１３３の処理を実行した後、ＰＣ１は、プリンタドライバ側の処理終了を待って、その返り値のチェックを行う（Ｓ１３５）。ここで、プリンタドライバ側からは、利用者の操作に応じて異なる返り値がアプリケーション側に返される。具体的には、後から詳述するプリンタドライバ処理で、図４（ａ）〜同図（ｃ）のいずれかに示す印刷設定ダイアログボックス５１を表示した後、利用者の操作により、Ｃａｎｃｅｌボタン５５がクリックされた場合には、プリンタドライバ側からアプリケーション側へ返り値０が返される。一方、利用者の操作により、Ｐｒｉｎｔボタン５６がクリックされた場合には、プリンタドライバ側からアプリケーション側へ返り値１が返される。
【００６６】
Ｓ１３３の処理において、返り値が１であった場合（Ｓ１３５：＝１）、これは利用者から印刷処理の実行が指令されたことを意味するので、その場合は、印刷実行処理を実行する（Ｓ１３７）。このＳ１３７の処理では、具体的には、Ｓ１０１の処理によってレジストリから取得した「印刷実行処理モジュールポインタ」が示す処理モジュールを呼び出すことにより、プリンタドライバに対して印刷実行を指令する。
【００６７】
なお、指令を受けたプリンタドライバ側では、アプリケーション側からの出力データ、およびプリンタドライバが表示した印刷設定ダイアログボックス５１での設定に基づいて、プリンタ２での印刷出力に必要な印刷データを生成する処理、その印刷データをスプーラ経由でプリンタ２へと送出する処理などが行われるが、これら一連の処理は、従来技術と差異のない処理になるので、図示および詳細な説明を省略する。
【００６８】
こうしてＳ１３７の処理を終えたら、Ｓ１０５の処理へと戻ることにより、再びＳ１０５以降の処理を繰り返すことになる。
一方、上記Ｓ１３３の処理において、返り値が０であった場合は（Ｓ１３５：＝０）、これは利用者から印刷処理のキャンセルが指令されたことを意味するので、その場合は、Ｓ１３７の処理をスキップして、そのままＳ１０５の処理へと戻ることにより、再びＳ１０５以降の処理を繰り返すことになる。
【００６９】
ところで、上述したＳ１２５〜Ｓ１２９のループ処理の中では、サブメニューの選択が外れたと判断されることもある（Ｓ１２７：ＹＥＳ）。この場合、ＰＣ１は、第１サブメニューのフォーカスをやめて、第２サブメニューを消す（Ｓ１３９）。そして、その他の処理を実行し（Ｓ１４１）、Ｓ１１７の処理へと戻る。このＳ１４１の処理では、マウスカーソル３１の位置に応じて、さらに不要なメニューや不要なフォーカスを消去する処理なども行われる。
【００７０】
つまり、Ｓ１１７の処理へと戻る前に、Ｓ１３９〜Ｓ１４１の処理により、マウスカーソル３１が外れた不要なメニューや不要なフォーカスは消去されることになる。ただし、第１サブメニューの選択が外れたのに伴って、別の第１サブメニューが選択されていれば、Ｓ１１７の処理で肯定判断がなされ、その結果、再び別の第１サブメニューに対応する第２サブメニューが表示されるので、この場合、利用者からは、第２サブメニューが切り替わったように見えることになる。なお、第１サブメニューの選択が外れた際、別の第１サブメニューも選択されていなければ、Ｓ１１７の処理で否定判断がなされるので、その場合、利用者からは、第２サブメニューの表示が終了したように見える。
【００７１】
次に、以上説明したようなアプリケーション処理において、Ｓ１３３の処理によってプリンタドライバが呼び出されたときに、プリンタドライバが実行するプリンタドライバ処理について、図６のフローチャートに基づいて説明する。
【００７２】
プリンタドライバ処理を開始すると、図６に示すように、ＰＣ１は、まず、アプリケーション側から引数として渡されたタブ番号により、表示ページ（＝利用者側から見て最も手前側に重ねて表示されるページ）を確定する（Ｓ２０３）。そして、その表示ページ中に設けられたコントロール（例えば、リストボックス、チェックボックス、テキストボックス、ラジオボタン等）に設定項目の値をセットして（Ｓ２０５）、印刷設定ダイアログボックス５１を表示する（Ｓ２０７）。このＳ２０７の処理により、ＰＣ１の表示部１６には印刷設定ダイアログボックス５１が表示されることになる。
【００７３】
Ｓ２０７の処理を実行したら、続いて、ＰＣ１は、印刷設定ダイアログボックス５１内のコントロールに対する操作がなされたか否かを判断し（Ｓ２１１）、コントロール操作がない場合は（Ｓ２１１：ＮＯ）、Ｓ２１１の処理へと戻り、このＳ２１１のループ処理により、利用者がコントロールの操作を行うまで待機する。
【００７４】
そして、このＳ２１１のループ処理の中で、利用者がコントロールの操作を行った場合（Ｓ２１１：ＹＥＳ）、ＰＣ１は、ダイアログ終了か否かを判断する（Ｓ２１３）。このＳ２１３の処理では、印刷設定ダイアログボックス５１中にあるコントロールの内、Ｃａｎｃｅｌボタン５５またはＰｒｉｎｔボタン５６がクリックされていた場合に、ダイアログ終了と判断し、他のコントロールに対する操作が行われていた場合には、ダイアログ終了ではないと判断する。
【００７５】
Ｓ２１３の処理においてダイアログ終了ではないと判断した場合（Ｓ２１３：ＮＯ）、ＰＣ１は、各コントロールの状態を変更し（Ｓ２１５）、Ｓ２１１の処理へと戻ることにより、引き続きコントロール操作を受け付ける。これにより、Ｓ２１３の処理においてダイアログ終了ではないと判断され続ける限り、Ｓ２１１〜Ｓ２１５のループ処理が何度でも繰り返されることになり、印刷設定ダイアログボックス５１中にある複数のコントロールに関し、利用者が任意に行う操作を何回でも受け付けることになる。
【００７６】
一方、Ｓ２１３の処理においてダイアログ終了と判断した場合（Ｓ２１３：ＹＥＳ）、ＰＣ１は、利用者から印刷が指令されたか否かを判断する（Ｓ２１７）。このＳ２１７の処理では、印刷設定ダイアログボックス５１中にあるコントロールの内、Ｃａｎｃｅｌボタン５５がクリックされていた場合に印刷が指令されたと判断し、Ｐｒｉｎｔボタン５６がクリックされていた場合に印刷は指令されていないと判断する。
【００７７】
Ｓ２１７の処理において印刷が指令されたと判断した場合（Ｓ２１７：ＹＥＳ）、ＰＣ１は、コントロールの状態を各設定項目に保存する（Ｓ２１９）。このＳ２１９の処理により、コントロール操作によって印刷設定ダイアログボックス５１内でのみ表示上変更されていた各種設定値は、各設定値毎に決められた記憶領域（例えば、レジストリ、あるいは、今回分の印刷処理を実行するための一時記憶領域）に保存されることになる。なお、ここで保存された値は、例えば、上記Ｓ１３７の処理でアプリケーションからプリンタドライバに対して印刷実行が指令された際にプリンタドライバが参照することになる。
【００７８】
そして、Ｓ２１９の処理を終えたら、アプリケーションに返す返り値として１をセットして（Ｓ２２１）、印刷設定ダイアログボックス５１を閉じて（Ｓ２２３）、プリンタドライバ処理を終了する。
【００７９】
一方、Ｓ２１７の処理において印刷は指令されていないと判断した場合（Ｓ２１７：ＮＯ）、ＰＣ１は、アプリケーションに返す返り値として０をセットして（Ｓ２２５）、上記Ｓ２２３の処理へと移行することにより、印刷設定ダイアログボックス５１を閉じて（Ｓ２２３）、プリンタドライバ処理を終了する。すなわち、Ｓ２１７の処理において印刷は指令されていないと判断した場合は、Ｓ２１９の処理に相当する処理を実行せず、Ｓ２２１の処理とは異なる返り値をセットして、プリンタドライバ処理を終了する。この場合、コントロール操作によって印刷設定ダイアログボックス５１内で表示上変更されていた各種設定値が仮にあったとしても、それらの設定値は各設定値毎に決められた記憶領域には保存されず、印刷設定ダイアログボックス５１内での設定変更は行われなかったことになる。
【００８０】
以上説明したようなプリンタドライバ処理、および先に説明したアプリケーション処理の双方が、ＰＣ１によって実行され、その結果、ＰＣ１の表示部１６に表示される画面（アプリケーションのウィンドウ、およびプリンタドライバのダイアログ）は、図２に示したように遷移することになる。
【００８１】
［効果］
以上説明した通り、上記ＰＣ１によれば、アプリケーションが表示するメニュー（より具体的には、「Ｐｒｉｎｔ」サブメニュー３７）上においてフォーカスを移動させる操作を行うだけで、プリンタドライバがダイアログボックス内に表示する情報の少なくとも一部に相当するダイアログ内情報（より具体的には、「Ｂａｓｅ」３８、「Ａｄｖａｎｃｅｄ」３９、および「Ｐａｇｅ  Ｓｅｔｕｐ」４０といったダイアログ内のサブページ情報や、「Ｐｒｉｎｔ  Ｑｕａｌｉｔｙ」、「Ｍｅｄｉａ  Ｔｙｐｅ」、「Ｔｏｎｅｒ  Ｓａｖｅ  Ｍｏｄｅ」、「Ｓｌｅｅｐ  Ｔｉｍｅ」、「Ｐａｇｅ  Ｓｉｚｅ」、「Ｏｒｉｅｎｔａｔｉｏｎ」、および「Ｓｃａｌｉｎｇ」といったダイアログ内の設定項目情報）を、メニューの一部として表示することができる。
【００８２】
したがって、印刷設定ダイアログボックス５１を表示した後にしかダイアログ内情報を見ることができなかった従来技術とは異なり、利用者は、プリンタドライバに印刷設定ダイアログボックス５１を表示させるための操作を行う前に、メニュー上でのフォーカス移動操作によってダイアログ内情報（どのようなサブページ（グループ）があるのか、どのような設定項目があるのか、あるいは、どの設定項目がどのサブページ（グループ）に属するのか等）を確認し、印刷設定ダイアログボックス５１の表示が必要かどうかを判断することができる。
【００８３】
また、上記ＰＣ１によれば、利用者が所望のグループ（「Ｂａｓｅ」３８、「Ａｄｖａｎｃｅｄ」３９、または「Ｐａｇｅ  Ｓｅｔｕｐ」４０のいずれか）を選択すれば、そのグループに属する設定項目を含むサブページが初期表示内容となる印刷設定ダイアログボックス５１が表示されるので、メニュー上での操作によって、簡単に所望の設定項目に辿り着くことができる。
【００８４】
［変形例等］
以上、本発明の実施形態について説明したが、本発明は上記の具体的な一実施形態に限定されず、この他にも種々の形態で実施することができる。
【００８５】
例えば、上記実施形態においては、メニュー上の項目へフォーカスを移動させる操作をマウスＤｒａｇ操作とし、フォーカスが移動した項目の選択を決定（確定）する操作をマウスＵｐ操作としていたが、各操作を別の操作に対応づけてもよい。具体的には、例えば、メニュー上の項目へフォーカスを移動させる操作を、マウスＤｏｗｎ操作を行わないままマウスカーソルを移動させる操作として、フォーカスが移動した項目の選択を決定（確定）する操作をクリック操作としてもよい。この場合でも、メニュー上の項目へフォーカスを移動させる操作を行うだけで、上述の実施形態同様、印刷設定ダイアログボックス５１が仮表示されるので、このような仮表示が行われない従来技術とは異なり、印刷設定ダイアログボックス５１内にある所望のサブページへのアクセスが容易になる。
【００８６】
また、上記実施形態では、「Ｆｉｌｅ」メニュー３４内にある「Ｐｒｉｎｔ」３５が、ＰＣ１のデフォルトプリンタに対応づけられている場合について説明したが、「Ｐｒｉｎｔ」３５が複数のプリンタに対応していて、その下位に設けられたサブメニューで１台のプリンタが選択できるようなメニュー構造になっていてもよい。より具体的には、例えば、図８に示すように、「Ｆｉｌｅ」メニュー３４内にある「Ｐｒｉｎｔ」３５にフォーカス３６を移動させる操作が行われた場合に、プリンタ選択サブメニュー６１が表示されるようにし、このプリンタ選択サブメニュー６１の中に複数のプリンタ名が表示されるようにする。そして、プリンタ選択サブメニュー６１の中で、フォーカス６３を１つのプリンタ名に移動させる操作が行われたら、その１つのプリンタ名のサブメニューとして、上記実施形態で説明した「Ｐｒｉｎｔ」サブメニュー３７相当のサブメニューを表示するように構成する。このように構成すれば、複数のプリンタについて、各プリンタ毎にメニュー内にダイアログ内情報の表示を行うことができ、利用者は、各プリンタ毎のダイアログ内情報を確認して、所望のプリンタドライバかどうか、および、ダイアログボックスの表示が必要かどうかを判断することができる。
【００８７】
また、上記実施形態では、印刷設定ダイアログボックス５１内に設けられた複数のサブページに関し、タブを選択する操作によって最前面に表示されるサブページを切り替えるようにしてあったが、サブページの具体的形態は任意であり、例えば、タブの無いサブページを利用する場合でも、本発明の構成を適用することができる。
【図面の簡単な説明】
【００８８】
【図１】アプリケーションおよびプリンタドライバが機能するＰＣと、このＰＣに接続されたプリンタの概略構成を示すブロック図。
【図２】ＰＣの表示部に表示される画面の遷移と、画面遷移の契機となるイベントないし操作とを併記した説明図。
【図３】アプリケーションのウィンドウ内に表示されるメニューを例示した説明図。
【図４】プリンタドライバの表示するダイアログボックスを例示した説明図。
【図５】アプリケーション処理のフローチャート。
【図６】プリンタドライバ処理のフローチャート。
【図７】アプリケーションまたはプリンタドライバが利用するデータを示し、（ａ）はアプリケーションが取得するプリンタドライバの情報を示す説明図、（ｂ）はアプリケーションからプリンタドライバへ渡される引数を示す説明図。
【図８】変形例としてのメニューを示す説明図。
【符号の説明】
【００８９】
１・・・パーソナルコンピュータ（ＰＣ）
２・・・プリンタ
１１，２１・・・ＣＰＵ
１２，２２・・・ＲＯＭ
１３，２３・・・ＲＡＭ
１４・・・ハードディスク装置（ＨＤＤ）
１５・・・操作部
１６・・・表示部
１７・・・ＵＳＢインターフェース（ＵＳＢ  Ｉ／Ｆ）
２５・・・操作キー
２６・・・表示パネル
２９・・・印字部
３１・・・マウスカーソル
３２・・・メニューバー
３４・・・「Ｆｉｌｅ」メニュー
３６，４１，６３・・・フォーカス
３７・・・「Ｐｒｉｎｔ」サブメニュー
４２・・・「Ｂａｓｅ」サブメニュー
４３・・・「Ａｄｖａｎｃｅｄ」サブメニュー
４４・・・「Ｐａｇｅ  Ｓｅｔｕｐ」サブメニュー
５１・・・印刷設定ダイアログボックス
５２・・・「Ｂａｓｅ」サブページ
５３・・・「Ａｄｖａｎｃｅｄ」サブページ
５４・・・Ｓｅｔｕｐ」サブページ
５５・・・Ｃａｎｃｅｌボタン
５６・・・Ｐｒｉｎｔボタン
６１・・・プリンタ選択サブメニュー
【図１】
2007206829.tif 000003
【図２】
2007206829.tif 000004
【図５】
2007206829.tif 000005
【図６】
2007206829.tif 000006
【図７】
2007206829.tif 000007
【図３】
2007206829.tif 000008
【図４】
2007206829.tif 000009
【図８】
2007206829.tif 000010