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 DoModal
den 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 StartDialogProc
von , DialogProc
wird als Dialogprozedur festgelegt, und weitere Aufrufe gehen dorthin.