組み込みダイアログボックス


入力ボックス

入力ボックスはプログラムのユーザからテキスト形式の情報を求めます。入力ボックスを開くには、グローバル関数 InputBox が使われます。

// stringを入力
string strName = InputBox("Please enter your name", "");
printf("Name is %s.\n", strName);

// 数値を入力
double dVal = InputBox(0, "Please enter a value");
printf("Value is %g.\n", dVal);

メッセージボックス

メッセージボックスは、情報を表示したり、ユーザに選択を促すために使われます。 表示する情報は、操作を続ける前にユーザに注意を促すための重要なものにします。

最初のサンプルは、OKボタンだけを持つ単純なメッセージボックスで、ファイルのダウンロードが成功したことを通知します。

string strTitle = "File Download";
string strMsg = "Your file downloaded successfully.";
MessageBox(GetWindow(), strMsg, strTitle, MB_OK);

次のサンプルは、OKとキャンセルボタンを持つ感嘆符のアイコン付きメッセージボックスで、ユーザに操作を元に戻すことができないという注意を促します。 ユーザは操作を続行するか、キャンセルするかを選択できます。

string strTitle = "Delete Data";
string strMsg = "You will not be able to undo this change.";
int nMB = MB_OKCANCEL|MB_ICONEXCLAMATION;
if( IDOK == MessageBox(GetWindow(), strMsg, strTitle, nMB) )
    out_str("Data has been deleted");

次の例は、はい-いいえのボタンを持つ疑問符のアイコン付きのメッセージボックスです。 これは、ユーザに操作を続行するかどうかを尋ねるのに使用しています。

string strTitle = "Close Windows";
string strMsg = "Are you sure you want to close all windows?";
int nMB = MB_YESNO|MB_ICONQUESTION;
if( IDYES == MessageBox(GetWindow(), strMsg, strTitle, nMB) )
    out_str("All windows have been closed.");

次の例では、プライベートリマインダメッセージダイアログを表示します。Iniファイルは、ダイアログを初期化するために使用されます。iniファイルの各セクションは、単一のメッセージに使用されます。

/* Example Dialog.ini file in UFF.
[MyMessage]
;Title = My Reminder
Msg = This is my message.
;Btns = 4 for Yes No buttons
Btns = 4
*/
void PrivateReminderMessage_ex1()
{
   string iniFileName = GetOriginPath(ORIGIN_PATH_USER) + "Dialog.ini";
   int nRet = PrivateReminderMessage("MyMessage", iniFileName);
   printf("User chose %d\n", nRet);
}

プログレスボックス

プログレスボックスは、ソフトウェアがデータを処理中であることを示す小さなダイアログボックスです。このダイアログボックスは、処理の進行状況の割合を表示するプログレスバーを含みます。プログレスダイアログは、通常、反復ループに使用します。

int iMax = 10, iMin = 0;
progressBox prgbBox("This is a ProgressBox example:");
prgbBox.SetRange(iMin, iMax);

for (int ii=iMin; ii<=iMax; ii++)
{
    if(prgbBox.Set(ii))
        printf("Hi, it is now at %d.\n", ii);
    else 
    {
        out_str("User abort!"); // Cancel ボタンをクリックして停止
        break;
    }
    LT_execute("sec -p 0.5");
}

ファイルダイアログ

Origin Cは、すべてに共通のファイルダイアログの関数を提供しています。 これには、1つのファイルを開く、複数ファイルを開く、ファイルを保存する、フォルダを選択するダイアログが含まれます。 次のセクションは、自分自身のアプリケーションでこれらのダイアログを使用する方法を示します。

ファイルを開くダイアログ

StringArray saFiletypes(3);
saFiletypes[0]="[Project (*.OPJ)] *.OPJ";
saFiletypes[1]="[Old version (*.ORG)] *.ORG";
saFiletypes[2]="[Worksheets (*.OGW)] *.OGW";

string strPath = GetOpenBox( saFiletypes, GetAppPath(false) ); 
out_str(strPath);

複数ファイルを開くダイアログ

StringArray saFilePaths;
StringArray saFileTypes(3);    
saFileTypes[0]="[Project (*.OPJ)] *.OPJ";
saFileTypes[1]="[Old version (*.ORG)] *.ORG";
saFileTypes[2]="[Worksheets (*.OGW)] *.OGW";

// Ctrl または Shirt キーで複数ファイルを選択
int iNumSelFiles = GetMultiOpenBox(saFilePaths, saFileTypes, GetAppPath(false));

ファイルを保存ダイアログ

string strDefaultFilename = "Origin";
FDLogUseGroup nFDLogUseGroup = FDLOG_ASCII; // ASCII ファイルグループ

string strPath = GetSaveAsBox(nFDLogUseGroup,GetAppPath(false),strDefaultFilename);
out_str( strPath );

パスブラウザダイアログ

string strPath = BrowseGetPath(GetAppPath() + "OriginC\\", "This is an example");
out_str(strPath);