ダイアログ ボックス (ダイアログ ボックス)

ダイアログ ボックスは、アプリケーションがユーザー入力を取得するために作成する一時的なウィンドウです。 通常、アプリケーションはダイアログ ボックスを使用して、メニュー項目の追加情報をユーザーに求めます。 通常、ダイアログ ボックスには、ユーザーがテキストを入力したり、オプションを選択したり、アクションを指示したりする 1 つ以上のコントロール (子ウィンドウ) が含まれます。

Windows には、 OpenPrint などの一般的なメニュー項目をサポートする定義済みのダイアログ ボックスも用意されています。 これらのメニュー項目を使用するアプリケーションでは、アプリケーションの種類に関係なく、このユーザー入力を求める一般的なダイアログ ボックスを使用する必要があります。

このセクションの内容

名前 説明
ダイアログ ボックスについて アプリケーションのユーザー インターフェイスでのダイアログ ボックスの使用について説明します。
ダイアログ ボックスのプログラミングに関する考慮事項 この概要では、ダイアログ ボックスに関するいくつかのプログラミング上の考慮事項について説明します。
ダイアログ ボックスの使用 ダイアログ ボックスを使用して情報を表示し、ユーザーからの入力を求めます。
ダイアログ ボックスリファレンス API リファレンス
共通ダイアログ ボックス ライブラリ アプリケーションのユーザー インターフェイスで共通のダイアログ ボックスを使用する方法について説明します。

ダイアログ ボックス関数

名前 説明
CreateDialog ダイアログ ボックス テンプレート リソースからモードレス ダイアログ ボックスを作成します。
CreateDialogIndirect メモリ内のダイアログ ボックス テンプレートからモードレス ダイアログ ボックスを作成します。
CreateDialogIndirectParam メモリ内のダイアログ ボックス テンプレートからモードレス ダイアログ ボックスを作成します。 ダイアログ ボックスを表示する前に、関数は、WM_INITDIALOG メッセージのlParam パラメーターとして、アプリケーション定義の値をダイアログ ボックス プロシージャに渡します。 アプリケーションでは、この値を使用してダイアログ ボックス コントロールを初期化できます。
CreateDialogParam ダイアログ ボックス テンプレート リソースからモードレス ダイアログ ボックスを作成します。 ダイアログ ボックスを表示する前に、関数は、WM_INITDIALOG メッセージのlParam パラメーターとして、アプリケーション定義の値をダイアログ ボックス プロシージャに渡します。 アプリケーションでは、この値を使用してダイアログ ボックス コントロールを初期化できます。
DefDlgProc 既定のダイアログ ボックス ウィンドウ プロシージャを呼び出して、プライベート ウィンドウ クラスを持つダイアログ ボックスが処理しないウィンドウ メッセージの既定の処理を提供します。
ダイアログ ダイアログ ボックス テンプレート リソースからモーダル ダイアログ ボックスを作成します。 DialogBox は、指定されたコールバック関数が EndDialog 関数を呼び出してモーダル ダイアログ ボックスを終了するまでコントロールを返しません。
DialogBoxIndirect メモリ内のダイアログ ボックス テンプレートからモーダル ダイアログ ボックスを作成します。 DialogBoxIndirect は、指定されたコールバック関数が EndDialog 関数を呼び出してモーダル ダイアログ ボックスを終了するまでコントロールを返しません。
DialogBoxIndirectParam メモリ内のダイアログ ボックス テンプレートからモーダル ダイアログ ボックスを作成します。 ダイアログ ボックスを表示する前に、関数は、WM_INITDIALOG メッセージのlParam パラメーターとして、アプリケーション定義の値をダイアログ ボックス プロシージャに渡します。 アプリケーションでは、この値を使用してダイアログ ボックス コントロールを初期化できます。
DialogBoxParam ダイアログ ボックス テンプレート リソースからモーダル ダイアログ ボックスを作成します。 ダイアログ ボックスを表示する前に、関数は、WM_INITDIALOG メッセージのlParam パラメーターとして、アプリケーション定義の値をダイアログ ボックス プロシージャに渡します。 アプリケーションでは、この値を使用してダイアログ ボックス コントロールを初期化できます。
DialogProc CreateDialog および DialogBox 関数ファミリで使用されるアプリケーション定義のコールバック関数。 モーダル ダイアログ ボックスまたはモードレス ダイアログ ボックスに送信されたメッセージを処理します。 DLGPROC 型は、このコールバック関数へのポインターを定義します。 DialogProc は、アプリケーション定義関数名のプレースホルダーです。
EndDialog モーダル ダイアログ ボックスを破棄し、システムがダイアログ ボックスの処理を終了します。
GetDialogBaseUnits システムのダイアログの基本単位 (システム フォントの文字の平均幅と高さ) を取得します。 システム フォントを使用するダイアログ ボックスの場合は、ダイアログ ボックス テンプレートとピクセルで指定されているように、これらの値を使用してダイアログ テンプレート単位間で変換できます。 システム フォントを使用しないダイアログ ボックスの場合、ダイアログ テンプレートの単位からピクセルへの変換は、ダイアログ ボックスで使用されるフォントによって異なります。
GetDlgCtrlID 指定したコントロールの識別子を取得します。
GetDlgItem 指定したダイアログ ボックス内のコントロールへのハンドルを取得します。
GetDlgItemInt ダイアログ ボックス内の指定したコントロールのテキストを整数値に変換します。
GetDlgItemText ダイアログ ボックス内のコントロールに関連付けられているタイトルまたはテキストを取得します。
GetNextDlgGroupItem ダイアログ ボックスで指定したコントロールの前 (または後に続く) コントロールのグループ内の最初のコントロールへのハンドルを取得します。
GetNextDlgTabItem 指定したコントロールの前 (または後に) WS_TABSTOP スタイルを持つ最初のコントロールへのハンドルを取得します。
IsDialogMessage メッセージが指定したダイアログ ボックスを対象としているかどうかを判断し、メッセージを処理する場合は処理します。
MapDialogRect 指定したダイアログ ボックスの単位を画面単位 (ピクセル) に変換します。 関数は、指定した RECT 構造体の座標を変換された座標に置き換えます。これにより、構造体を使用してダイアログ ボックスを作成したり、ダイアログ ボックス内にコントロールを配置したりできます。
メッセージ ボックス システム アイコン、一連のボタン、および状態やエラー情報などのアプリケーション固有の簡単なメッセージを含むモーダル ダイアログ ボックスを表示します。 メッセージ ボックスは、ユーザーがクリックしたボタンを示す整数値を返します。
MessageBoxEx メッセージ ボックスを作成、表示、操作します。 メッセージ ボックスには、アプリケーション定義のメッセージとタイトルに加えて、定義済みのアイコンとプッシュ ボタンの任意の組み合わせが含まれます。 ボタンは、システム ユーザー インターフェイスの言語で表示されます。
MessageBoxIndirect メッセージ ボックスを作成、表示、操作します。 メッセージ ボックスには、アプリケーション定義のメッセージ テキストとタイトル、任意のアイコン、および定義済みのプッシュ ボタンの任意の組み合わせが含まれます。
SendDlgItemMessage ダイアログ ボックスで指定したコントロールにメッセージを送信します。
SetDlgItemInt ダイアログ ボックス内のコントロールのテキストを、指定した整数値の文字列形式に設定します。
SetDlgItemText ダイアログ ボックス内のコントロールのタイトルまたはテキストを設定します。

ダイアログ ボックス メッセージ

名前 説明
DM_GETDEFID ダイアログ ボックスの既定のプッシュ ボタン コントロールの識別子を取得します。
DM_REPOSITION デスクトップ領域内に収まるように、最上位のダイアログ ボックスの位置を変更します。 アプリケーションは、サイズを変更した後にこのメッセージをダイアログ ボックスに送信して、ダイアログ ボックス全体が確実に表示されるようにすることができます。
DM_SETDEFID ダイアログ ボックスの既定のプッシュ ボタンの識別子を変更します。

ダイアログ ボックスの通知

名前 説明
WM_CTLCOLORDLG システムがダイアログ ボックスを描画する前に、ダイアログ ボックスに送信されます。 このメッセージに応答することで、ダイアログ ボックスは、指定されたディスプレイ デバイス コンテキスト ハンドルを使用して、テキストと背景色を設定できます。
WM_ENTERIDLE アイドル状態になっているモーダル ダイアログ ボックスまたはメニューの所有者ウィンドウに送信されます。 モーダル ダイアログ ボックスまたはメニューは、1 つ以上の前のメッセージを処理した後、キューでメッセージが待機していない場合にアイドル状態になります。
WM_GETDLGCODE コントロールに関連付けられているウィンドウ プロシージャに送信されます。 既定では、システムはコントロールに対するすべてのキーボード入力を処理します。システムは、特定の種類のキーボード入力をダイアログ ボックス ナビゲーション キーとして解釈します。 この既定の動作をオーバーライドするために、コントロールは WM_GETDLGCODE メッセージに応答して、それ自体を処理する入力の種類を示すことができます。
WM_INITDIALOG ダイアログ ボックスが表示される直前に、ダイアログ ボックス プロシージャに送信されます。 ダイアログ ボックス プロシージャでは、通常、このメッセージを使用してコントロールを初期化し、ダイアログ ボックスの外観に影響を与えるその他の初期化タスクを実行します。
WM_NEXTDLGCTL ダイアログ ボックスのプロシージャに送信され、ダイアログ ボックス内の別のコントロールにキーボード フォーカスを設定します。

ダイアログ ボックスの構造

名前 説明
DLGITEMTEMPLATE ダイアログ ボックス内のコントロールの寸法とスタイルを定義します。 これらの構造体の 1 つ以上を DLGTEMPLATE 構造体と組み合わせて、ダイアログ ボックスの標準テンプレートを形成します。
DLGITEMTEMPLATEEX 拡張ダイアログ ボックスについて説明します。 拡張ダイアログ ボックス テンプレートの形式の説明については、「 DLGTEMPLATEEX」を参照してください。
DLGTEMPLATE ダイアログ ボックスの寸法とスタイルを定義します。 この構造体は、常にダイアログ ボックスの標準テンプレートの最初の構造であり、ダイアログ ボックス内のコントロールの数も指定するため、テンプレート内の後続の DLGITEMTEMPLATE 構造体の数を指定します。
DLGTEMPLATEEX 拡張ダイアログ ボックス テンプレートは、ダイアログ ボックスを記述し、ダイアログ ボックス内のコントロールの数を指定する DLGTEMPLATEEX ヘッダーで始まります。 ダイアログ ボックス内のコントロールごとに、拡張ダイアログ ボックス テンプレートには、 DLGITEMTEMPLATEEX 形式を使用してコントロールを記述するデータ ブロックがあります。
MSGBOXPARAMS メッセージ ボックスを表示するために使用される情報が含まれます。 MessageBoxIndirect 関数は、この構造体を使用します。