次の方法で共有


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

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

構文

DLGPROC Dlgproc;

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

パラメーター

unnamedParam1

型: HWND

ダイアログ ボックスを識別するハンドル。

unnamedParam2

型: UINT

メッセージ。

unnamedParam3

型: WPARAM

追加のメッセージ固有情報。

unnamedParam4

型: LPARAM

追加のメッセージ固有情報。

種類: INT_PTR

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

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

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

戻り値

なし

解説

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

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー winuser.h (Windows.h を含む)

関連項目

概念

CreateDialog

CreateDialogIndirect

CreateDialogIndirectParam

CreateDialogParam

DefWindowProc

ダイアログ ボックス

ダイアログ

DialogBoxIndirect

DialogBoxIndirectParam

DialogBoxParam

リファレンス

SetFocus

WM_INITDIALOG