次の方法で共有


DLGPROC コールバック関数 (winuser.h)

関数の CreateDialog および DialogBox ファミリで使用されるアプリケーション定義のコールバック関数。 モーダル ダイアログ ボックスまたはモードレス ダイアログ ボックスに送信されたメッセージを処理します。 DLGPROC 型は、このコールバック関数へのポインターを定義します。 DialogProc は、アプリケーション定義関数名のプレースホルダーです。

構文

DLGPROC Dlgproc;

INT_PTR Dlgproc(
  HWND unnamedParam1,
  UINT unnamedParam2,
  WPARAM unnamedParam3,
  LPARAM unnamedParam4
)
{...}

パラメーター

unnamedParam1

型: HWND

ダイアログ ボックスのハンドル。 通常、このパラメーターの名前は hWnd です

unnamedParam2

型: UINT

メッセージ。 通常、このパラメーターの名前は uMsg です

unnamedParam3

型: WPARAM

追加のメッセージ固有の情報。 通常、このパラメーターの名前は wParam です

unnamedParam4

型: LPARAM

追加のメッセージ固有の情報。 通常、このパラメーターの名前は lParam です

戻り値

型: INT_PTR

通常、ダイアログ ボックス プロシージャは、メッセージを処理した場合は TRUE を返し、処理しなかった場合は FALSE を 返す必要があります。 ダイアログ ボックス プロシージャが FALSE を返す場合、ダイアログ マネージャーはメッセージに応答して既定のダイアログ操作を実行します。

ダイアログ ボックス プロシージャが特定の戻り値を必要とするメッセージを処理する場合、ダイアログ ボックス プロシージャは TRUE を返す直前に SetWindowLong(hwndDlg, DWL_MSGRESULT, lResult) を呼び出して目的の戻り 値を設定する必要があります。 TRUE を返す直前に SetWindowLong を呼び出す必要があることに注意 してください。これを行うと、入れ子になったダイアログ ボックス メッセージによって DWL_MSGRESULT 値が上書きされる可能性があります。

次のメッセージは、上記の一般的な規則の例外です。 戻り値のセマンティクスの詳細については、特定のメッセージのドキュメントを参照してください。

注釈

パラメーターは、 typedef INT_PTR (CALLBACK* DLGPROC)(HWND, UINT, WPARAM, LPARAM);という名前を持たないヘッダーで定義されます。 したがって、構文ブロックでは、 unnamedParam1 - unnamedParam4として一覧表示されます。 これらのパラメーターには、アプリ内の任意の名前を付けることができます。 ただし、通常はパラメーターの説明に示すように名前が付けられます。

ダイアログ ボックスのプロシージャは、ダイアログ ボックスのダイアログ ボックス クラスを使用する場合にのみ使用する必要があります。 これは既定のクラスであり、ダイアログ ボックス テンプレートで明示的なクラスが指定されていない場合に使用されます。 ダイアログ ボックス プロシージャはウィンドウ プロシージャに似ていますが、 DefWindowProc 関数を呼び出して不要なメッセージを処理することはできません。 不要なメッセージは、ダイアログ ボックス ウィンドウ プロシージャによって内部的に処理されます。

Requirements

Requirement 価値
サポートされる最小クライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
Header winuser.h (Windows.h を含む)

こちらも参照ください

概念的

ダイアログ ボックス

WM_INITDIALOG

リファレンス

CreateDialog

CreateDialogIndirect

CreateDialogIndirectParam

CreateDialogParam

DefWindowProc

DialogBox

DialogBoxIndirect

DialogBoxIndirectParam

DialogBoxParam

SetFocus