C++Builder (VCL)で使用可能な以下のメッセージを表示するダイアログ関数について説明します。
Windowsのアプリケーションを作成する時、必ずと言って良いほど使用するのではないでしょうか?
- MessageDlg
- MessageDlgPos
- ShowMessage
- ShowMessageFmt
- ShowMessagePos
- TaskMessageDlg
- TaskMessageDlgPos
- MessageBeep(WIN32)
ShowMessage関数
ShowMessage を呼び出すと、[OK] ボタンの付いた単純なメッセージ ボックスを表示します。 アプリケーションの実行可能ファイル名は、メッセージ ボックスのキャプションとして表示されます。
ユーザーがメッセージ ボックスで Ctrl+C
を入力した場合、メッセージのテキストがクリップボードにコピーされます。
- プロトタイプ宣言
extern DELPHI_PACKAGE void __fastcall ShowMessage(const System::UnicodeString Msg)/* overload */;
extern DELPHI_PACKAGE void __fastcall ShowMessage(const System::UnicodeString Msg,
TTaskDialogFlags TaskDlgFlags)/* overload */;
- 引数
型 | 引数 | 意味 |
---|---|---|
System::UnicodeString | Msg | ダイアログボックスに表示するメッセージテキスト。 |
TTaskDialogFlags | TaskDlgFlags | ダイアログボックスの外観や動作を制御するフラグを指定します。 |
- TTaskDialogFlag
タスク ダイアログに設定されるオプションを指定できます。
Flag | Description |
---|---|
tfEnableHyperlinks | コンテンツ、フッター、展開されたテキストに、ハイパーリンクを含めることができる。 |
tfUseHiconMain | カスタム メイン アイコンを使用します。 |
tfUseHiconFooter | カスタム フッター アイコンを使用します。 |
tfAllowDialogCancellation | タスク ダイアログが、キャンセル ボタンがない場合に、閉じられることを許可します。 |
tfSizeToContent | タスク ダイアログの幅がコンテンツ領域の幅によって決定されることを示します。 |
tfUseCommandLinks | ボタンが、標準ダイアログ グラフィックで使用されるコマンド リンクとして表示されます。 |
tfUseCommandLinksNoIcon | ボタンが、グラフィックなしでコマンド リンクとして表示されます。 |
tfExpandFooterArea | フッターに展開されたテキストを表示します。 |
tfExpandedByDefault | タスク ダイアログが開いた際に展開されたテキストが表示されます。 |
tfVerificationFlagChecked | 確認チェック ボックスに、最初からチェックがつきます。 |
tfShowProgressBar | 進捗バーを表示します。 |
tfShowMarqueeProgressBar | マーキー進捗バーを表意します。 |
tfCallbackTimer | ダイアログ コールバックが、200 ミリ秒ごとに呼び出されます。 |
tfPositionRelativeToWindow | タスク ダイアログは、親ウィンドウの中央に配置されます。 |
tfRtlLayout | テキストは右から左に読みます。 |
tfNoDefaultRadioButton | デフォルトのラジオ ボタンをなしにします。 |
tfCanBeMinimized | タスク ダイアログは最小化できます。 |
- サンプルコード
// ShowMessage関数を使用してメッセージを表示する
ShowMessage(L"Do you want to continue?");
- tfUseCommandLinksオプション指定
ShowMessage(L"Do you want to continue?", TTaskDialogFlags() << tfUseCommandLinks);
- tfUseCommandLinksNoIconオプション指定
ShowMessage(L"Do you want to continue?", TTaskDialogFlags() << tfUseCommandLinksNoIcon);
- tfRtlLayoutオプション指定
ShowMessage(L"Do you want to continue?", TTaskDialogFlags() << tfRtlLayout);
ShowMessagePos関数
ShowMessagePos関数は、指定された位置にメッセージ ボックスを表示します。
ShowMessagePos関数 を呼び出すと、[OK] ボタンの付いた単純なメッセージ ボックスを指定された位置に表示します。アプリケーションの実行可能ファイル名は、メッセージ ボックスのキャプションとして表示されます。
Msg パラメータは、メッセージ ボックスに表示されるメッセージです。
X と Y は、メッセージ ボックスが表示される位置の画面座標を指定します。-1 を指定した場合、メッセージ ボックスは指定された範囲のどこにでも表示できます。
他のボタンやアイコンがあるメッセージ ボックスにメッセージを表示するには、MessageDlg 関数を使用します。
- プロトタイプ宣言
extern DELPHI_PACKAGE void __fastcall ShowMessagePos(const System::UnicodeString Msg, int X, int Y)/* overload */;
extern DELPHI_PACKAGE void __fastcall ShowMessagePos(const System::UnicodeString Msg,
int X, int Y, TTaskDialogFlags TaskDlgFlags)/* overload */;
- サンプルコード
// メッセージを表示する位置
int X = 100;
int Y = 100;
// メッセージボックスのオプション
TTaskDialogFlags Flags;
// メッセージボックスを表示
ShowMessagePos(L"これは指定位置に表示されるメッセージです", X, Y, Flags);
ShowMessageFmt関数
ShowMessageFmt
関数は、フォーマットされたメッセージを表示するための関数です。この関数は、System::UnicodeString
型のメッセージテンプレートとパラメータリストを受け取り、指定されたフラグを使用してメッセージダイアログを表示します。
- プロトタイプ宣言
extern DELPHI_PACKAGE void __fastcall ShowMessageFmt(const System::UnicodeString Msg,
System::TVarRec *Params, const System::NativeInt Params_High)/* overload */;
extern DELPHI_PACKAGE void __fastcall ShowMessageFmt(const System::UnicodeString Msg,
System::TVarRec *Params,
const System::NativeInt Params_High,
TTaskDialogFlags TaskDlgFlags)/* overload */;
- 引数
型 | 引数 | 意味 |
---|---|---|
System::UnicodeString | Msg | フォーマットされたメッセージテンプレート。例: L”Value: %d” |
System::TVarRec* | Params | メッセージテンプレートに挿入されるパラメータのリスト。例: array of TVarRec(複数の型の値を含む配列) |
const System::NativeInt | Params_High | Params 配列の上限インデックス。例: 配列のサイズ – 1 |
TTaskDialogFlags | TaskDlgFlags | ダイアログボックスの外観や動作を制御するフラグを指定します。例: tfAllowDialogCancellation, tfEnableHyperlinks など |
- サンプルコード
// フォーマットされたメッセージテンプレート
UnicodeString msgTemplate = L"Value: %d, Text: %s";
// パラメータリスト
TVarRec params[2] = { 123, L"Hello" };
// ShowMessageFmt関数を使用してフォーマットされたメッセージを表示する
ShowMessageFmt(msgTemplate, params, 1, TTaskDialogFlags() << tfAllowDialogCancellation);
MessageDlg関数
MessageDlg を呼び出すと、画面の中央にメッセージ ダイアログ ボックスを表示し、ユーザーの応答を取得できます。
- プロトタイプ宣言
extern DELPHI_PACKAGE int __fastcall MessageDlg(const System::UnicodeString Msg,
System::Uitypes::TMsgDlgType DlgType,
System::Uitypes::TMsgDlgButtons Buttons,
System::LongInt HelpCtx)/* overload */;
extern DELPHI_PACKAGE int __fastcall MessageDlg(const System::UnicodeString Msg,
System::Uitypes::TMsgDlgType DlgType,
System::Uitypes::TMsgDlgButtons Buttons,
System::LongInt HelpCtx,
System::Uitypes::TMsgDlgBtn DefaultButton)/* overload */;
extern DELPHI_PACKAGE int __fastcall MessageDlg(const System::UnicodeString Msg,
System::Uitypes::TMsgDlgType DlgType,
System::Uitypes::TMsgDlgButtons Buttons,
System::LongInt HelpCtx,
System::Uitypes::TMsgDlgBtn DefaultButton,
System::UnicodeString *CustomButtonCaptions,
const System::NativeInt CustomButtonCaptions_High)/* overload */;
- 引数
型 | 引数 | 意味 |
---|---|---|
System::UnicodeString | Msg | ダイアログボックスに表示するメッセージテキスト。 |
SystemUitypesTMsgDlgType | DlgType | ダイアログボックスのアイコンとその動作を指定します。値: mtWarning, mtError, mtInformation, mtConfirmation, mtCustom |
SystemUitypesTMsgDlgButtons | Buttons | ダイアログボックスに表示するボタンのセットを指定します。値: mbYes, mbNo, mbOK, mbCancel, mbAbort, mbRetry, mbIgnore, mbAll, mbNoToAll, mbYesToAll, mbHelp |
System::LongInt | HelpCtx | ヘルプコンテキストID(通常は 0 で良い)。 |
SystemUitypesTMsgDlgBtn | DefaultButton | デフォルトのボタンを指定します。値: mbYes, mbNo, mbOK, mbCancel, mbAbort, mbRetry, mbIgnore, mbAll, mbNoToAll, mbYesToAll, mbHelp |
System::UnicodeString* | CustomButtonCaptions | カスタムボタンのキャプションを指定します。例: customButtons(カスタムボタンキャプションの配列) |
const System::NativeInt | CustomButtonCaptions_High | カスタムボタンキャプション配列の上限インデックス。例: 配列のサイズ – |
- 戻り値
MessageDlg は、ユーザーが選択したボタンの値を返します。
メッセージ ボックスに表示されるボタンの各タイプの値と、ユーザーがそのボタンを選択した場合に返される対応値については、Vcl.Dialogs.TMsgDlgButtons ページの表を参照してください。
TMsgDlgBtn 値 | 対応する戻り値 | 意味 |
---|---|---|
mbOK | mrOk | 表面が [OK] のボタン |
mbCancel | mrCancel | 表面が [キャンセル] のボタン |
mbYes | mrYes | 表面が [はい] のボタン |
mbNo | mrNo | 表面が [いいえ] のボタン |
mbAbort | mrAbort | 表面が [中止] のボタン |
mbRetry | mrRetry | 表面が [再試行] のボタン |
mbIgnore | mrIgnore | 表面が [無視] のボタン |
mbAll | mrAll | 表面が [すべて] のボタン |
mbNoToAll | mrNoToAll | 表面が [すべていいえ] のボタン |
mbYesToAll | mrYesToAll | 表面が [すべてはい] のボタン |
mbClose | mrClose | 表面が [閉じる] のボタン |
Dialogs ユニットでは、MessageDlg および MessageDlgPos 関数で使用される次の定数が定義されています。
定数 | 意味 |
---|---|
mbYesNoCancel | mbYes、mbNo、mbCancel |
mbYesAllNoAllCancel | mbYes、mbYesToAll、mbNo、mbNoToAll、mbCancel |
mbOKCancel | mbOK、mbCancel |
mbAbortRetryIgnore | mbAbort、mbRetry、mbIgnore |
mbAbortIgnore | mbAbort、mbIgnore |
- サンプルコード(mtWarning)
MessageDlg(L"画像データがありません", mtWarning, TMsgDlgButtons() << mbOK, 0);
- サンプルコード(mtError)
MessageDlg(L"画像データがありません", mtError, TMsgDlgButtons() << mbOK, 0);
- サンプルコード(mtInformation)
MessageDlg(L"画像データがありません", mtInformation, TMsgDlgButtons() << mbOK, 0);
- サンプルコード(mtConfirmation)
MessageDlg(L"画像データがありません", mtConfirmation, TMsgDlgButtons() << mbOK, 0);
- サンプルコード(mtCustom)
mtCustomに設定すると、キャプションはアプリケーション名になります。
MessageDlg(L"画像データがありません", mtCustom, TMsgDlgButtons() << mbOK, 0);
MessageDlgPos関数
指定された画面座標の位置にメッセージ ダイアログ ボックスを表示します。
MessageDlgPos を呼び出すと、キャプションを指定する必要がない場合に特定の位置にメッセージ ボックスを表示できます。 (キャプションも指定する必要がある場合は、MessageDlg 関数を使用します。
- プロトタイプ宣言
extern DELPHI_PACKAGE int __fastcall MessageDlgPos(const System::UnicodeString Msg,
System::Uitypes::TMsgDlgType DlgType,
System::Uitypes::TMsgDlgButtons Buttons,
System::LongInt HelpCtx, int X, int Y,
System::Uitypes::TMsgDlgBtn DefaultButton)/* overload */;
extern DELPHI_PACKAGE int __fastcall MessageDlgPos(const System::UnicodeString Msg,
System::Uitypes::TMsgDlgType DlgType,
System::Uitypes::TMsgDlgButtons Buttons,
System::LongInt HelpCtx, int X, int Y,
System::Uitypes::TMsgDlgBtn DefaultButton,
TTaskDialogFlags TaskDlgFlags)/* overload */;
extern DELPHI_PACKAGE int __fastcall MessageDlgPos(const System::UnicodeString Msg,
System::Uitypes::TMsgDlgType DlgType,
System::Uitypes::TMsgDlgButtons Buttons,
System::LongInt HelpCtx, int X, int Y,
System::Uitypes::TMsgDlgBtn DefaultButton,
TTaskDialogFlags TaskDlgFlags,
System::UnicodeString *CustomButtonCaptions,
const System::NativeInt CustomButtonCaptions_High)/* overload */;
- 引数
型 | 引数 | 意味 |
---|---|---|
const System::UnicodeString | Msg | 表示するメッセージのテキスト。 |
SystemUitypesTMsgDlgType | DlgType | ダイアログの種類を指定します。例えば、mtWarning、mtError、mtInformation、mtConfirmation など。 |
SystemUitypesTMsgDlgButtons | Buttons | ダイアログに表示するボタンを指定します。例えば、mbYes, mbNo, mbOK, mbCancel などの組み合わせ。 |
System::LongInt | HelpCtx | ヘルプコンテキスト ID。ヘルプが不要な場合は 0 を指定します。 |
int | X | ダイアログを表示する X 座標。 |
int | Y | ダイアログを表示する Y 座標。 |
SystemUitypesTMsgDlgBtn | DefaultButton | デフォルトで選択されているボタン。 |
TTaskDialogFlags | TaskDlgFlags | タスクダイアログのフラグ。通常のダイアログでは 0 を指定します。 |
System::UnicodeString * | CustomButtonCaptions | カスタムボタンのキャプションを指定する配列。 |
const System::NativeInt | CustomButtonCaptions_High | カスタムボタンのキャプション配列の高インデックス。CustomButtonCaptions が使用されない場合は -1 を指定します。 |
- サンプルコード
try
{
System::UnicodeString msg = L"この操作を続行しますか?";
TMsgDlgType dlgType = mtConfirmation;
TMsgDlgButtons buttons = TMsgDlgButtons() << mbYes << mbNo;
System::LongInt helpCtx = 0;
int x = 100;
int y = 100;
TMsgDlgBtn defaultButton = mbYes;
TTaskDialogFlags taskDlgFlags = TTaskDialogFlags();
System::UnicodeString customButtonCaptions[] = {};
System::NativeInt customButtonCaptionsHigh = -1;
int result = MessageDlgPos(msg, dlgType, buttons, helpCtx, x, y, defaultButton, taskDlgFlags, customButtonCaptions, customButtonCaptionsHigh);
switch (result)
{
case mrYes:
ShowMessage(L"Yes が選択されました。");
break;
case mrNo:
ShowMessage(L"No が選択されました。");
break;
default:
ShowMessage(L"他のボタンが選択されました。");
break;
}
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
TaskMessageDlg関数
画面の中央にメッセージ タスク ダイアログ ボックスを表示します。
TaskMessageDlg 関数を呼び出すと、メッセージ ボックスを表示し、ユーザーの応答を取得できます。
Title には DlgType が mtCustom のときに、メッセージ ボックスのキャプションを指定します。 このパラメータを使用しない場合は、カスタム メッセージ ボックスのキャプションは、アプリケーションのタイトルです。
Msg は、表示されるメッセージの内容です。
DlgType は、ダイアログ ボックスの目的を示します。
- プロトタイプ宣言
extern DELPHI_PACKAGE int __fastcall TaskMessageDlg(const System::UnicodeString Title,
const System::UnicodeString Msg,
System::Uitypes::TMsgDlgType DlgType,
System::Uitypes::TMsgDlgButtons Buttons,
System::LongInt HelpCtx)/* overload */;
extern DELPHI_PACKAGE int __fastcall TaskMessageDlg(const System::UnicodeString Title,
const System::UnicodeString Msg,
System::Uitypes::TMsgDlgType DlgType,
System::Uitypes::TMsgDlgButtons Buttons,
System::LongInt HelpCtx,
System::Uitypes::TMsgDlgBtn DefaultButton)/* overload */;
extern DELPHI_PACKAGE int __fastcall TaskMessageDlg(const System::UnicodeString Title,
const System::UnicodeString Msg,
System::Uitypes::TMsgDlgType DlgType,
System::Uitypes::TMsgDlgButtons Buttons,
System::LongInt HelpCtx,
System::Uitypes::TMsgDlgBtn DefaultButton,
System::UnicodeString *CustomButtonCaptions,
const System::NativeInt CustomButtonCaptions_High)/* overload */;
- 引数
型 | 引数 | 意味 |
---|---|---|
const System::UnicodeString | Title | ダイアログのタイトル。 |
const System::UnicodeString | Msg | ダイアログに表示するメッセージ。 |
SystemUitypesTMsgDlgType | DlgType | ダイアログの種類(情報、警告、エラーなど)。 |
SystemUitypesTMsgDlgButtons | Buttons | ダイアログに表示するボタンのセット。 |
System::LongInt | HelpCtx | ヘルプコンテキスト。ヘルプを提供しない場合は0を指定。 |
SystemUitypesTMsgDlgBtn | DefaultButton | デフォルトで選択されるボタン。 |
System::UnicodeString* | CustomButtonCaptions | カスタムボタンのキャプションの配列。 |
const System::NativeInt | CustomButtonCaptions_High | カスタムボタンキャプションの配列の高インデックス。 |
- サンプルコード
// ダイアログのタイトルとメッセージ
System::UnicodeString Title = L"カスタムダイアログ";
System::UnicodeString Msg = L"これはカスタムメッセージダイアログです。続行しますか?";
// ダイアログの種類
System::Uitypes::TMsgDlgType DlgType = mtConfirmation;
// ダイアログに表示するボタン
System::Uitypes::TMsgDlgButtons Buttons = TMsgDlgButtons() << mbYes << mbNo << mbCancel;
// ヘルプコンテキスト (ヘルプがない場合は0)
System::LongInt HelpCtx = 0;
// デフォルトで選択されるボタン
System::Uitypes::TMsgDlgBtn DefaultButton = mbYes;
// カスタムボタンのキャプション
System::UnicodeString CustomButtonCaptions[] = {L"Custom1", L"Custom2"};
// ダイアログを表示し、ユーザーの選択を取得
int Result = TaskMessageDlg(Title, Msg, DlgType, Buttons, HelpCtx, DefaultButton, CustomButtonCaptions, 1);
// ユーザーの選択に基づいて処理
switch (Result) {
case mrYes:
ShowMessage(L"Yesを選択しました。");
break;
case mrNo:
ShowMessage(L"Noを選択しました。");
break;
case mrCancel:
ShowMessage(L"キャンセルを選択しました。");
break;
case 100:
ShowMessage(L"Custom1を選択しました。");
break;
case 101:
ShowMessage(L"Custom2を選択しました。");
break;
default:
ShowMessage(L"不明な選択をしました。");
break;
}
TaskMessageDlgPos関数
指定された画面座標の位置にメッセージ タスク ダイアログ ボックスを表示します。
TaskMessageDlgPos を呼び出すと、キャプションを指定する必要がない場合に特定の位置にメッセージ ボックスを表示できます。 (キャプションも指定する必要がある場合は、MessageDlg 関数を使用します。)
Msg
は、表示されるメッセージの内容です。
DlgType
は、ダイアログ ボックスの目的を示します。 利用可能な値のリストについては Vcl.Dialogs.TMsgDlgType ページを参照してください。
Buttons
は、メッセージ ボックスにどのボタンが表示されるのかを示します。 Buttons
は、Vcl.Dialogs.TMsgDlgButtons 型です。
HelpCtx
は、ダイアログ ボックスの表示中にユーザーがヘルプ ボタンをクリックするか、F1 を押したときに表示されるヘルプ トピックのコンテキスト ID を指定します。
X
と Y
は、ダイアログ ボックスが表示される位置の画面座標を指定します。 -1 を指定した場合、メッセージ ボックスは指定された範囲のどこにでも表示できます。
DefaultBtn
は、Buttons
で指定された中でどのボタンがダイアログのデフォルトであるのかを指定します。 DefaultBtn
が mbNo
の場合、デフォルト ボタン セットはありません。 利用可能な列挙値のリストについては Vcl.Dialogs.TMsgDlgType ページを参照してください。
Bitmap
はメッセージ ダイアログの表面に表示される画像です。 Bitmap
が nil(Delphi)または NULL(C++)の場合、DlgType
が mtConfirmation
でない限り、画像はありません。
MessageDlgPos は、ユーザーが選択したボタンの値を返します。 メッセージ ボックスに表示されるボタンの各タイプの値と、ユーザーがそのボタンを選択した場合に返される対応値のリストについては、Vcl.Dialogs.TMsgDlgBtn ページの表を参照してください。
mtConfirmation
でクエスチョンマークを表示する
TMsgDlgType.mtConfirmation 型のダイアログ ボックスは情報アイコンを表示します。
今までは、クエスチョン マークを代わりに表示していましたが、Microsoft は、VCL が TMsgDlgType.mtConfirmation
ダイアログ ボックスを表示するのに使用している Windows API 関数からクエスチョン マークのシンボルを削除してしまいました。Microsoft では次のように述べています。
「疑問符のメッセージ アイコンは推奨されなくなりました。これは、このアイコンがメッセージの具体的な種類を明確に表さないためであり、また、疑問形のメッセージはどの種類のメッセージにも使用できるためです。 さらに、ユーザーがメッセージ シンボルの疑問符をヘルプ情報と混同する可能性もあります。」
ドキュメントには、
以前のダイアログ ボックスの概観を使用するには、Vcl.Dialogs ユニットの
UseLatestCommonDialogs
変数をFalse
に設定しなければなりません。
とありますが、Windows11では、ダイアログ ボックスの概観は変わりませんでした。
- プロトタイプ宣言
extern DELPHI_PACKAGE int __fastcall TaskMessageDlgPos(const System::UnicodeString Title,
const System::UnicodeString Msg,
System::Uitypes::TMsgDlgType DlgType,
System::Uitypes::TMsgDlgButtons Buttons,
System::LongInt HelpCtx, int X, int Y)/* overload */;
extern DELPHI_PACKAGE int __fastcall TaskMessageDlgPos(const System::UnicodeString Title,
const System::UnicodeString Msg,
System::Uitypes::TMsgDlgType DlgType,
System::Uitypes::TMsgDlgButtons Buttons,
System::LongInt HelpCtx, int X, int Y,
System::Uitypes::TMsgDlgBtn DefaultButton)/* overload */;
- 引数
型 | 引数 | 意味 |
---|---|---|
const System::UnicodeString | Title | ダイアログのタイトル。 |
const System::UnicodeString | Msg | ダイアログに表示するメッセージ。 |
SystemUitypesTMsgDlgType | DlgType | ダイアログの種類(情報、警告、エラーなど)。 |
SystemUitypesTMsgDlgButtons | Buttons | ダイアログに表示するボタンのセット。 |
System::LongInt | HelpCtx | ヘルプコンテキスト。ヘルプを提供しない場合は0を指定。 |
int | X | ダイアログを表示するX座標。 |
int | Y | ダイアログを表示するY座標。 |
SystemUitypesTMsgDlgBtn | DefaultButton | デフォルトで選択されるボタン。 |
- サンプルコード
// ダイアログのタイトルとメッセージ
System::UnicodeString Title = L"カスタムダイアログ";
System::UnicodeString Msg = L"これは指定位置に表示されるカスタムメッセージダイアログです。続行しますか?";
// ダイアログの種類
System::Uitypes::TMsgDlgType DlgType = mtConfirmation;
// ダイアログに表示するボタン
System::Uitypes::TMsgDlgButtons Buttons = TMsgDlgButtons() << mbYes << mbNo << mbCancel;
// ヘルプコンテキスト (ヘルプがない場合は0)
System::LongInt HelpCtx = 0;
// メッセージダイアログを表示する位置
int X = 200;
int Y = 150;
// デフォルトで選択されるボタン
System::Uitypes::TMsgDlgBtn DefaultButton = mbYes;
// ダイアログを表示し、ユーザーの選択を取得
int Result = TaskMessageDlgPos(Title, Msg, DlgType, Buttons, HelpCtx, X, Y, DefaultButton);
// ユーザーの選択に基づいて処理
switch (Result) {
case mrYes:
ShowMessage(L"Yesを選択しました。");
break;
case mrNo:
ShowMessage(L"Noを選択しました。");
break;
case mrCancel:
ShowMessage(L"キャンセルを選択しました。");
break;
default:
ShowMessage(L"不明な選択をしました。");
break;
}
MessageBeep 関数 (winuser.h)
MessageBeep 関数は、VCLの関数ではなく、WIN32APIの関数ですが、ここで説明します。
デバッグ時に処理が実行されているかどうかを確認するのに、ここ関数を使うと便利です。
MessageBeep 関数は、波形サウンドを再生します。 各サウンドの種類の波形サウンドは、レジストリのエントリによって識別されます。
- 解説
サウンドをキューに入れると、 MessageBeep 関数は呼び出し元の関数に制御を返し、サウンドを非同期的に再生します。
指定したアラート サウンドを再生できない場合、 MessageBeep はシステムの既定のサウンドの再生を試みます。 システムの既定のサウンドを再生できない場合、関数はコンピューター スピーカーを介して標準のビープ音を生成します。
ユーザーは、サウンド コントロール パネル アプリケーションを使用して警告ビープ音を無効にすることができます。
- プロトタイプ宣言
BOOL MessageBeep(
[in] UINT uType
);
- パラメーター
再生するサウンド。 サウンドは、サウンド コントロール パネル アプリケーションを使用してユーザーによって設定され、レジストリに格納されます。
このパラメーターには、次の値のいずれかを指定できます。
値 | 意味 |
---|---|
0xFFFFFFFF | 単純なビープ音。 サウンド カードが使用できない場合は、スピーカーを使用してサウンドが生成されます。 |
MB_ICONASTERISK(0x00000040L) | 「MB_ICONINFORMATION」を参照してください。 |
MB_ICONEXCLAMATION(0x00000030L) | 「MB_ICONWARNING」を参照してください。 |
MB_ICONERROR(0x00000010L) | Windows Critical Stop サウンドとして指定されたサウンド。 |
MB_ICONHAND(0x00000010L) | 「MB_ICONERROR」を参照してください。 |
MB_ICONINFORMATION(0x00000040L) | Windows アスタリスク サウンドとして指定されたサウンド。 |
MB_ICONQUESTION(0x00000020L) | Windows 質問のサウンドとして指定されたサウンド。 |
MB_ICONSTOP(0x00000010L) | 「MB_ICONERROR」を参照してください。 |
MB_ICONWARNING(0x00000030L) | Windows 感嘆符として指定されたサウンド。 |
MB_OK(0x000000000L) | Windows の既定のビープ音として指定されたサウンド。 |
- 戻り値
関数が成功すると、戻り値は 0 以外になります。
関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。