LPSETUPHOOKPROC-Rückruffunktion (commdlg.h)
Eine anwendungsdefinierte oder bibliotheksdefinierte Rückruffunktion, die mit der PrintDlg-Funktion verwendet wird. Die Hookprozedur empfängt Nachrichten oder Benachrichtigungen, die für die Standarddialogfeldprozedur des Dialogfelds Druckeinrichtung vorgesehen sind.
Der LPSETUPHOOKPROC-Typ definiert einen Zeiger auf diese Rückruffunktion. SetupHookProc ist ein Platzhalter für den anwendungsdefinierten oder bibliotheksdefinierte Funktionsnamen.
Syntax
LPSETUPHOOKPROC Lpsetuphookproc;
UINT_PTR Lpsetuphookproc(
HWND unnamedParam1,
UINT unnamedParam2,
WPARAM unnamedParam3,
LPARAM unnamedParam4
)
{...}
Parameter
unnamedParam1
Ein Handle für das Dialogfeld Druckeinrichtung , für das die Nachricht vorgesehen ist.
unnamedParam2
Der Bezeichner der empfangenen Nachricht.
unnamedParam3
Zusätzliche Informationen zur Meldung. Die genaue Bedeutung hängt vom Wert des parameters unnamedParam2 ab.
unnamedParam4
Zusätzliche Informationen zur Meldung. Die genaue Bedeutung hängt vom Wert des parameters unnamedParam2 ab.
Rückgabewert
Wenn die Hookprozedur null zurückgibt, verarbeitet die Standarddialogfeldprozedur die Nachricht.
Wenn die Hookprozedur einen wert ohne Zero zurückgibt, ignoriert die Standarddialogfeldprozedur die Meldung.
Hinweise
Das Dialogfeld Druckeinrichtung wurde durch das Dialogfeld Seiteneinrichtung ersetzt, das von neuen Anwendungen verwendet werden sollte. Aus Gründen der Kompatibilität unterstützt die PrintDlg-Funktion jedoch weiterhin die Anzeige des Dialogfelds Druckeinrichtung . Sie können eine SetupHookProc-Hookprozedur für das Dialogfeld Drucken einrichten bereitstellen, um Nachrichten oder Benachrichtigungen zu verarbeiten, die für die Dialogfeldprozedur vorgesehen sind.
Um die Hookprozedur zu aktivieren, verwenden Sie die PRINTDLG-Struktur , die Sie an die Dialogerstellungsfunktion übergeben haben. Geben Sie die Adresse der Hookprozedur im lpfnSetupHook-Member an, und geben Sie das PD_ENABLESETUPHOOK Flag im Flags-Element an.
Die Standarddialogfeldprozedur verarbeitet die WM_INITDIALOG-Nachricht , bevor sie an die Hookprozedur übergeben wird. Bei allen anderen Nachrichten empfängt die Hookprozedur zuerst die Nachricht. Anschließend bestimmt der Rückgabewert der Hookprozedur, ob die Standarddialogprozedur die Nachricht verarbeitet oder ignoriert.
Wenn die Hookprozedur die WM_CTLCOLORDLG-Nachricht verarbeitet, muss ein gültiges Pinselhandle zurückgegeben werden, um den Hintergrund des Dialogfelds zu malen. Wenn die Hookprozedur eine WM_CTLCOLOR* -Nachricht verarbeitet, muss im Allgemeinen ein gültiges Pinselhandle zurückgegeben werden, um den Hintergrund des angegebenen Steuerelements zu malen.
Rufen Sie die EndDialog-Funktion nicht über die Hookprozedur auf. Stattdessen kann die Hookprozedur die PostMessage-Funktion aufrufen, um eine WM_COMMAND Nachricht mit dem IDABORT-Wert in der Dialogfeldprozedur zu posten. Das Veröffentlichen von IDABORT schließt das Dialogfeld und bewirkt, dass die Dialogfeldfunktion FALSE zurückgibt. Wenn Sie wissen müssen, warum die Hookprozedur das Dialogfeld geschlossen hat, müssen Sie einen eigenen Kommunikationsmechanismus zwischen der Hookprozedur und Ihrer Anwendung bereitstellen.
Sie können die Standardsteuerelemente eines allgemeinen Dialogfelds unterklassen. Die Dialogfeldprozedur kann die Steuerelemente jedoch auch unterklassieren. Aus diesem Gründen sollten Sie Steuerelemente unterklassen, wenn Ihre Hookprozedur die WM_INITDIALOG Nachricht verarbeitet. Dadurch wird sichergestellt, dass ihre Unterklassenprozedur die steuerelementspezifischen Nachrichten vor der von der Dialogfeldprozedur festgelegten Unterklassenprozedur empfängt.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | commdlg.h (einschließlich Windows.h) |
Weitere Informationen
Allgemeine Dialogfeldbibliothek
Konzept
Referenz