Freigeben über


DLGPROC-Rückruffunktion (winuser.h)

Anwendungsdefinierte Rückruffunktion, die zusammen mit den Funktionsfamilien CreateDialog und DialogBox verwendet wird. Es verarbeitet Nachrichten, die an ein modales oder modusloses Dialogfeld gesendet werden. Der DLGPROC-Typ definiert einen Zeiger auf diese Rückruffunktion. DialogProc ist ein Platzhalter für den anwendungsdefinierte Funktionsnamen.

Syntax

DLGPROC Dlgproc;

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

Die Parameter

unnamedParam1

Typ: HWND-

Ein Handle für das Dialogfeld. Dieser Parameter wird in der Regel hWnd genannt.

unnamedParam2

Typ: UINT

Die Nachricht. Dieser Parameter wird in der Regel als uMsg bezeichnet.

unnamedParam3

Typ: WPARAM

Zusätzliche nachrichtenspezifische Informationen. Dieser Parameter wird in der Regel "wParam" genannt.

unnamedParam4

Typ: LPARAM

Zusätzliche nachrichtenspezifische Informationen. Dieser Parameter heißt in der Regel "lParam".

Rückgabewert

Typ: INT_PTR

In der Regel sollte die Dialogfeldprozedur TRUE zurückgeben, wenn sie die Nachricht verarbeitet hat, und FALSE , wenn dies nicht der Fall war. Wenn die Dialogfeldprozedur FALSCH zurückgibt, führt der Dialog-Manager als Reaktion auf die Nachricht den Standarddialogvorgang aus.

Wenn die Dialogfeldprozedur eine Nachricht verarbeitet, die einen bestimmten Rückgabewert erfordert, sollte die Dialogfeldprozedur den gewünschten Rückgabewert durch Aufrufen von SetWindowLong(hwndDlg, DWL_MSGRESULT, lResult) unmittelbar vor dem Zurückgeben von TRUE festlegen. Beachten Sie, dass Sie SetWindowLong unmittelbar vor dem Zurückgeben von TRUE aufrufen müssen. Dies kann dazu führen, dass der DWL_MSGRESULT Wert durch eine geschachtelte Dialogfeldnachricht überschrieben wird.

Die folgenden Meldungen sind Ausnahmen von den oben genannten allgemeinen Regeln. Weitere Informationen zur Semantik des Rückgabewerts finden Sie in der Dokumentation zu der jeweiligen Nachricht.

Bemerkungen

Hinweis

Die Parameter werden in der Kopfzeile ohne Namen definiert: typedef INT_PTR (CALLBACK* DLGPROC)(HWND, UINT, WPARAM, LPARAM);. Der Syntaxblock listet sie daher als unnamedParam1 - unnamedParam4. Sie können diese Parameter in Ihrer App benennen. Sie werden jedoch in der Regel wie in den Parameterbeschreibungen dargestellt benannt.

Sie sollten die Dialogfeldprozedur nur verwenden, wenn Sie die Dialogfeldklasse für das Dialogfeld verwenden. Dies ist die Standardklasse und wird verwendet, wenn in der Dialogfeldvorlage keine explizite Klasse angegeben wird. Obwohl die Dialogfeldprozedur einer Fensterprozedur ähnelt, darf sie die DefWindowProc-Funktion nicht aufrufen, um unerwünschte Nachrichten zu verarbeiten. Unerwünschte Nachrichten werden intern über die Fensterprozedur des Dialogfelds verarbeitet.

Anforderungen

Anforderung Wert
Mindestens unterstützter Client Windows 2000 Professional [nur Desktop-Apps]
Mindestanforderungen für unterstützte Server Windows 2000 Server [nur Desktop-Apps]
Zielplattform Fenster
Header winuser.h (enthalten Windows.h)

Siehe auch

Konzeptionelle

Dialogfelder

WM_INITDIALOG

Referenz

CreateDialog

CreateDialogIndirect

CreateDialogIndirectParam

CreateDialogParam

DefWindowProc

DialogBox

DialogBoxIndirect

DialogBoxIndirectParam

DialogBoxParam

SetFocus