Freigeben über


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

EndDialog

IPrintDialogCallback

Andere Ressourcen

PRINTDLGEX

PostMessage

PrintDlgEx

Referenz

SetWindowLong

WM_COMMAND

WM_CTLCOLORDLG

WM_INITDIALOG

WM_NOTIFY