IPrintDialogCallback::HandleMessage-Methode (commdlg.h)
Wird von PrintDlgEx aufgerufen, um Ihrer Anwendung die Möglichkeit zu geben, Nachrichten zu verarbeiten, die an das untergeordnete Dialogfeld im unteren Teil der Seite Allgemein des Druckeigenschaftenblatts gesendet werden. Das untergeordnete Dialogfeld enthält Steuerelemente, die denen des Dialogfelds Drucken ähneln.
Syntax
HRESULT HandleMessage(
HWND hDlg,
UINT uMsg,
WPARAM wParam,
LPARAM lParam,
LRESULT *pResult
);
Parameter
hDlg
Typ: HWND
Ein Handle für das untergeordnete Dialogfeld im unteren Teil der Seite Allgemein .
uMsg
Typ: UINT
Der Bezeichner der empfangenen Nachricht.
wParam
Typ: WPARAM
Zusätzliche Informationen zur Meldung. Die genaue Bedeutung hängt vom Wert des uMsg-Parameters ab.
lParam
Typ: LPARAM
Zusätzliche Informationen zur Meldung. Die genaue Bedeutung hängt vom Wert des uMsg-Parameters ab.
Wenn der uMsg-Parameter die WM_INITDIALOG Nachricht angibt, ist lParam ein Zeiger auf eine PRINTDLGEX-Struktur , die die werte enthält, die beim Erstellen des Eigenschaftenblatts angegeben wurden.
pResult
Typ: LRESULT*
Gibt das Ergebnis an, das von der Dialogfeldprozedur für die Nachricht zurückgegeben werden soll. Der Wert, auf den verwiesen wird, sollte TRUE sein, wenn Sie die Nachricht verarbeiten. Andernfalls sollte sie FALSE sein oder ein beliebiger Wert entsprechend dem Nachrichtentyp sein.
Rückgabewert
Typ: HRESULT
Geben Sie S_OK zurück, wenn Ihre IPrintDialogCallback::HandleMessage-Implementierung die Nachricht verarbeitet hat. In diesem Fall führt die PrintDlgEx-Funktion keine Standardmäßige Nachrichtenverarbeitung aus.
Geben Sie S_FALSE zurück, wenn PrintDlgEx die Standardmäßige Nachrichtenverarbeitung ausführen soll.
Hinweise
Für Benachrichtigungsmeldungen, die von der WM_NOTIFY Nachricht übergeben werden, müssen Sie die SetWindowLong-Funktion mit dem DWL_MSGRESULT Wert verwenden, um einen Rückgabewert festzulegen. Wenn Sie SetWindowLong aufrufen, verwenden Sie GetParent(hDlg), um den DWL_MSGRESULT Wert der Seite Allgemein festzulegen, die das übergeordnete Element des untergeordneten Fensters ist.
Die Standarddialogfeldprozedur für das untergeordnete Fenster im unteren Teil der Seite Allgemein verarbeitet die WM_INITDIALOG Nachricht, bevor sie an die HandleMessage-Methode übergeben wird. Bei allen anderen Nachrichten, die an das untergeordnete Fenster gesendet werden, empfängt HandleMessage zuerst die Nachricht. Anschließend bestimmt der HandleMessage-Rückgabewert , ob die Standarddialogprozedur die Nachricht verarbeitet oder ignoriert.
Wenn HandleMessage die WM_CTLCOLORDLG-Nachricht verarbeitet, muss ein gültiges Pinselhandle zurückgegeben werden, um den Hintergrund des Dialogfelds zu malen. Wenn HandleMessageeine WM_CTLCOLOR* -Nachricht verarbeitet, muss im Allgemeinen ein gültiges Pinselhandle zurückgegeben werden, um den Hintergrund des angegebenen Steuerelements zu zeichnen.
Rufen Sie die EndDialog-Funktion nicht über die HandleMessage-Methode auf. Stattdessen kann HandleMessage 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 Print-Eigenschaftenblatt und bewirkt, dass PrintDlgExPD_RESULT_CANCEL im dwResultAction-Member der PRINTDLGEX-Struktur zurückgibt. Wenn Sie wissen müssen, warum HandleMessage das Dialogfeld geschlossen hat, müssen Sie Einen eigenen Kommunikationsmechanismus zwischen der HandleMessage-Methode und Ihrer Anwendung bereitstellen.
Sie können die Standardsteuerelemente des untergeordneten Dialogfelds im unteren Teil der Seite Allgemein unterklassen. Diese Standardsteuerelemente ähneln denen im Dialogfeld Drucken . Die Standarddialogfeldprozedur kann die Steuerelemente jedoch auch unterklassieren. Aus diesem Gründen sollten Sie Steuerelemente unterklassen, wenn HandleMessage die WM_INITDIALOG Nachricht verarbeitet. Dadurch wird sichergestellt, dass ihre Unterklassenprozedur steuerelementspezifische Nachrichten vor der durch die Dialogfeldprozedur festgelegten Unterklassenprozedur empfängt.
Anforderungen
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) |
DLL | Comdlg32.dll |
Weitere Informationen
Allgemeine Dialogfeldbibliothek
Konzept
Andere Ressourcen
Referenz