![]() | Programming Guide | WideStudio/MWT Index 目次 |
ファイル選択ダイアログ
ファイル選択ダイアログの表示
ファイル選択ダイアログの使い方について触れてみましょう。ファイル選択ダ イアログの様なダイアログに関しては、便利な表示メソッドpopup が用意され ています。popup メソッドは、単にダイアログを表示させるだけでなく、オペレータがOK やキャンセルなどを選択した結果を関数復帰で返します。したがって、関数を 呼ぶだけで、ダイアログの表示から、ダイアログの終了した時点の選択結果の 取得を行うことができます。ファイル選択ダイアログやメッセージダイアログ に関して実際のサンプルプログラムを見ていきましょう。
[ファイル選択ダイアログ]#include <WScom.h> #include <WSCfunctionList.h> #include <WSCbase.h> #include <WSCfileSelect.h> //(A) #include <WSCmessageDialog.h> //(B) //---------------------------------------------------------- //Function for the event procedure //---------------------------------------------------------- void btnep2(WSCbase* object){ //アプリケーションに1つあらかじめ用意されています。 //ファイル選択ダイアログのインスタンスにアクセスします。 WSCfileSelect* fs = WSGIappFileSelect(); //(C) fs->setProperty(WSNmaskFileName,"cpp"); //(D) fs->setProperty(WSNdefaultPosition,True); //(E) long ret = fs->popup(); //(F) //アプリケーションに1つあらかじめ用意されている //メッセージダイアログのインスタンスを取得する。 WSCmessageDialog* msg = WSGIappMessageDialog(); //(G) msg->setProperty(WSNwidth,500); //(H) msg->setProperty(WSNheight,120); //(I) msg->setProperty(WSNdefaultPosition,True); //(J) if (ret == WS_DIALOG_OK){ //(K) WSCstring str; str << fs->getFileName() << " が選択されました。"; msg->setProperty(WSNlabelString,str); msg->popup(); }else if (ret == WS_DIALOG_NO){ //(L) msg->setProperty(WSNlabelString,"選択されませんでした。"); msg->popup(); }else if (ret == WS_DIALOG_CANCEL){ msg->setProperty(WSNlabelString,"選択は取り消されました。"); msg->popup(); //(M) } }(A),(B) でファイル選択ダイアログやメッセージダイアログにアクセスするので、 ヘッダーファイルをインクルードしておきます。
(C) でグローバルインスタンスアクセス関数を使用して、ファイル選択ダイア ログのグローバルインスタンスにアクセスします。ファイル選択ダイアログな どのクラスには、あらかじめいつでも利用できるようにグローバルなインスタ ンスが1つ用意されています。そして、グローバルインスタンスアクセス関数 によってアクセスできるようになっています。
(D),(E)でプロパティを設定し、(F) で、ダイアログを表示状態にします。実 際に選択が行われると、popup メソッドが復帰して来ます。
ファイル選択ダイアログの選択結果をメッセージダイアログを使って表示して みるとします。(G),(H),(I),(J)で、メッセージダイアログのグローバルイン スタンスを取得して、プロパティを設定します。
(K) では、選択されたファイルをメッセージ文字列として表示します。 (L) では、ファイル選択が無かった主旨をメッセージ文字列として表示します。 (M) では、キャンセルされた主旨をメッセージ文字列として表示します。
Copyright(C) WideStudio/MWT Development Team, 1999-2005 | Last modified: Jul 31, 2005 |