Freigeben über


CDialogImpl-Klasse

Diese Klasse stellt Methoden zum Erstellen eines modalen oder moduslosen Dialogfelds bereit.

Wichtig

Diese Klasse und ihre Member können nicht in Anwendungen verwendet werden, die in der Windows-Runtime ausgeführt werden.

Syntax

template <class T,
    class TBase = CWindow>
    class ATL_NO_VTABLE CDialogImpl : public CDialogImplBaseT<TBase>

Parameter

T
Ihre Klasse, abgeleitet von CDialogImpl.

TBase
Die Basisklasse Ihrer neuen Klasse. Die Standardbasisklasse ist CWindow.

Member

Methoden

Funktion Beschreibung
Erstellen Erstellt ein Dialogfeld ohne Modus.
DestroyWindow Zerstört ein Dialogfeld ohne Modus.
DoModal Erstellt ein modales Dialogfeld.
EndDialog Zerstört ein modales Dialogfeld.

CDialogImplBaseT-Methoden

Funktion Beschreibung
GetDialogProc Gibt die aktuelle Dialogfeldprozedur zurück.
MapDialogRect Ordnet die Dialogfeldeinheiten des angegebenen Rechtecks Bildschirmeinheiten (Pixel) zu.
OnFinalMessage Wird aufgerufen, nachdem die letzte Nachricht empfangen wurde, in der Regel WM_NCDESTROY.

Statische Funktionen

Funktion Beschreibung
DialogProc Verarbeitet nachrichten, die an das Dialogfeld gesendet werden.
StartDialogProc Wird aufgerufen, wenn die erste Nachricht empfangen wird, um nachrichten zu verarbeiten, die an das Dialogfeld gesendet werden.

Hinweise

Mit CDialogImpl diesem Dialogfeld können Sie ein modales oder modusloses Dialogfeld erstellen. CDialogImpl stellt die Dialogfeldprozedur bereit, die die Standardmeldungszuordnung verwendet, um Nachrichten an die entsprechenden Handler zu leiten.

Der Basisklassendestruktor ~CWindowImplRoot stellt sicher, dass das Fenster nicht mehr vorhanden ist, bevor das Objekt zerstört wird.

CDialogImpl wird von CDialogImplBaseT abgeleitet, was wiederum von CWindowImplRoot abgeleitet wird.

Hinweis

Ihre Klasse muss ein IDD Element definieren, das die Ressourcen-ID der Dialogvorlage angibt. Der ATL-Projekt-Assistent fügt ihrer Klasse beispielsweise automatisch die folgende Zeile hinzu:

enum { IDD = IDD_MYDLG };

dabei MyDlg handelt es sich um den Kurznamen, der auf der Seite "Namen" des Assistenten eingegeben wurde.

Weitere Informationen zu Siehe
Erstellen von Steuerelementen ATL-Tutorial
Verwenden von Dialogfeldern in ATL ATL-Fensterklassen
ATL-Projekt-Assistent Erstellen eines ATL-Projekts
Dialogfelder Dialogfelder und nachfolgende Themen im Windows SDK

Anforderungen

Kopfzeile: atlwin.h

CDialogImpl::Create

Erstellt ein Dialogfeld ohne Modus.

HWND Create(
    HWND hWndParent,
    LPARAM dwInitParam = NULL );

HWND Create(
    HWND hWndParent,
    RECT&,
    LPARAM dwInitParam = NULL);

Parameter

hWndParent
[in] Das Handle für das Besitzerfenster.

RECT&rect [in] Eine RECT-Struktur, die die Größe und Position des Dialogfelds angibt.

dwInitParam
[in] Gibt den Wert an, der an das Dialogfeld im lParam-Parameter der WM_INITDIALOG Nachricht übergeben werden soll.

Rückgabewert

Das Handle für das neu erstellte Dialogfeld.

Hinweise

Dieses Dialogfeld wird automatisch an das CDialogImpl Objekt angefügt. Rufen Sie DoModal auf, um ein modales Dialogfeld zu erstellen. Die zweite Überschreibung oben wird nur mit CComControl verwendet.

CDialogImpl::D estroyWindow

Zerstört ein Dialogfeld ohne Modus.

BOOL DestroyWindow();

Rückgabewert

TRUE, wenn das Dialogfeld erfolgreich zerstört wurde; andernfalls FALSE.

Hinweise

Gibt WAHR zurück, wenn das Dialogfeld erfolgreich zerstört wurde; andernfalls FALSE.

CDialogImpl::D ialogProc

Diese statische Funktion implementiert die Dialogfeldprozedur.

static LRESULT CALLBACK DialogProc(
    HWND hWnd,
    UINT uMsg,
    WPARAM wParam,
    LPARAM lParam);

Parameter

hWnd
[in] Das Handle für das Dialogfeld.

uMsg
[in] Die an das Dialogfeld gesendete Nachricht.

wParam
[in] Zusätzliche nachrichtenspezifische Informationen.

lParam
[in] Zusätzliche nachrichtenspezifische Informationen.

Rückgabewert

TRUE, wenn die Nachricht verarbeitet wird; andernfalls FALSE.

Hinweise

DialogProc verwendet die Standardnachrichtenzuordnung, um Nachrichten an die entsprechenden Handler zu leiten.

Sie können außer Kraft setzen DialogProc , um einen anderen Mechanismus zum Behandeln von Nachrichten bereitzustellen.

CDialogImpl::D oModal

Erstellt ein modales Dialogfeld.

INT_PTR DoModal(
    HWND hWndParent = ::GetActiveWindow(),
    LPARAM dwInitParam = NULL);

Parameter

hWndParent
[in] Das Handle für das Besitzerfenster. Der Standardwert ist der Rückgabewert der GetActiveWindow Win32-Funktion.

dwInitParam
[in] Gibt den Wert an, der an das Dialogfeld im lParam-Parameter der WM_INITDIALOG Nachricht übergeben werden soll.

Rückgabewert

Bei erfolgreicher Ausführung der Wert des nRetCode-Parameters , der im Aufruf von EndDialog angegeben ist. Andernfalls: -1

Hinweise

Dieses Dialogfeld wird automatisch an das CDialogImpl Objekt angefügt.

Rufen Sie "Erstellen" auf, um ein Dialogfeld ohne Modus zu erstellen.

CDialogImpl::EndDialog

Zerstört ein modales Dialogfeld.

BOOL EndDialog(int nRetCode);

Parameter

nRetCode
[in] Der wert, der von CDialogImpl::D oModal zurückgegeben werden soll.

Rückgabewert

TRUE, wenn das Dialogfeld zerstört wird; andernfalls FALSE.

Hinweise

EndDialog muss über die Dialogfeldprozedur aufgerufen werden. Nachdem das Dialogfeld zerstört wurde, verwendet Windows den Wert nRetCode als Rückgabewert für , für DoModalden das Dialogfeld erstellt wurde.

Hinweis

Rufen Sie nicht auf EndDialog , um ein Dialogfeld ohne Modus zu zerstören. Rufen Sie stattdessen CWindow::D estroyWindow auf.

CDialogImpl::GetDialogProc

Gibt die aktuelle Dialogfeldprozedur zurück DialogProc.

virtual WNDPROC GetDialogProc();

Rückgabewert

Die aktuelle Dialogfeldprozedur.

Hinweise

Überschreiben Sie diese Methode, um die Dialogprozedur durch ihre eigene zu ersetzen.

CDialogImpl::MapDialogRect

Konvertiert (ordnet) die Dialogfeldeinheiten des angegebenen Rechtecks in Bildschirmeinheiten (Pixel) um.

BOOL MapDialogRect(LPRECT lpRect);

Parameter

lpRect
Verweist auf ein Objekt oder eine CRect RECT-Struktur, die die Clientkoordinaten des Updates empfängt, die den Aktualisierungsbereich umschließen.

Rückgabewert

Nonzero, wenn das Update erfolgreich ist; 0, wenn das Update fehlschlägt. Um erweiterte Fehlerinformationen abzurufen, rufen Sie GetLastError auf.

Hinweise

Die Funktion ersetzt die Koordinaten in der angegebenen RECT Struktur durch die konvertierten Koordinaten, wodurch die Struktur verwendet werden kann, um ein Dialogfeld zu erstellen oder ein Steuerelement in einem Dialogfeld zu positionieren.

CDialogImpl::OnFinalMessage

Wird aufgerufen, nachdem die letzte Nachricht empfangen wurde (in der Regel WM_NCDESTROY).

virtual void OnFinalMessage(HWND hWnd);

Parameter

hWnd
[in] Ein Griff zum zerstörten Fenster.

Hinweise

Beachten Sie, dass Sie löschen möchten, wenn Sie Ihr Objekt bei der Fenstervernichtung automatisch löschen möchten, können Sie dies hier aufrufen.

CDialogImpl::StartDialogProc

Wird nur einmal aufgerufen, wenn die erste Nachricht empfangen wird, um nachrichten zu verarbeiten, die an das Dialogfeld gesendet werden.

static LRESULT CALLBACK StartDialogProc(
    HWND hWnd,
    UINT uMsg,
    WPARAM wParam,
    LPARAM lParam);

Parameter

hWnd
[in] Das Handle für das Dialogfeld.

uMsg
[in] Die an das Dialogfeld gesendete Nachricht.

wParam
[in] Zusätzliche nachrichtenspezifische Informationen.

lParam
[in] Zusätzliche nachrichtenspezifische Informationen.

Rückgabewert

Die Fensterprozedur.

Hinweise

Nach dem anfänglichen Aufruf StartDialogProcvon , DialogProc wird als Dialogprozedur festgelegt, und weitere Aufrufe gehen dorthin.

Siehe auch

BEGIN_MSG_MAP
Klassenübersicht