Share via


Klasse CDialogImpl

Opmerking

De ATL (Active Template Library) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.

Deze klasse biedt methoden voor het maken van een modaal of modusloos dialoogvenster.

Belangrijk

Deze klasse en de bijbehorende leden kunnen niet worden gebruikt in toepassingen die worden uitgevoerd in Windows Runtime.

Syntaxis

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

Parameterwaarden

T
Uw klas, afgeleid van CDialogImpl.

TBase
De basisklasse van uw nieuwe klasse. De standaardbasisklasse is CWindow.

Leden

Methods

Functie Description
Creëren Hiermee maakt u een modusloos dialoogvenster.
DestroyWindow Vernietigt een modusloos dialoogvenster.
DoModal Hiermee maakt u een modaal dialoogvenster.
EndDialog Vernietigt een modaal dialoogvenster.

CDialogImplBaseT-methoden

Functie Description
GetDialogProc Retourneert de huidige dialoogvensterprocedure.
MapDialogRect Hiermee worden de dialoogvenstereenheden van de opgegeven rechthoek toegewezen aan schermeenheden (pixels).
OnFinalMessage Aangeroepen na ontvangst van het laatste bericht, meestal WM_NCDESTROY.

Statische functies

Functie Description
DialogProc Hiermee worden berichten verwerkt die naar het dialoogvenster worden verzonden.
StartDialogProc Wordt aangeroepen wanneer het eerste bericht wordt ontvangen om berichten te verwerken die naar het dialoogvenster worden verzonden.

Opmerkingen

Hiermee CDialogImpl kunt u een modaal of modusloos dialoogvenster maken. CDialogImpl bevat de procedure in het dialoogvenster, die gebruikmaakt van de standaardberichttoewijzing om berichten naar de juiste handlers te sturen.

De basisklassedestructor ~CWindowImplRoot zorgt ervoor dat het venster is verdwenen voordat het object wordt vernietigd.

CDialogImpl afgeleid van CDialogImplBaseT, die op zijn beurt afgeleid is van CWindowImplRoot.

Opmerking

Uw klasse moet een IDD lid definiëren dat de resource-id van de dialoogvenstersjabloon opgeeft. De wizard ATL-project voegt bijvoorbeeld automatisch de volgende regel toe aan uw klasse:

enum { IDD = IDD_MYDLG };

waar MyDlg is de korte naam die is ingevoerd op de pagina Namen van de wizard.

Voor meer informatie over Zien!
Besturingselementen maken ATL-zelfstudie
Dialoogvensters gebruiken in ATL ATL-vensterklassen
Wizard ATL-project Een ATL-project maken
Dialoogvensters Dialoogvensters en volgende onderwerpen in de Windows SDK

Requirements

Koptekst: atlwin.h

CDialogImpl::Create

Hiermee maakt u een modusloos dialoogvenster.

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

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

Parameterwaarden

hWndParent
[in] De ingang naar het eigenaarvenster.

RECT&rect [in] Een RECT-structuur die de grootte en positie van het dialoogvenster aangeeft.

dwInitParam
[in] Hiermee geeft u de waarde die moet worden doorgegeven aan het dialoogvenster in de parameter lParam van het WM_INITDIALOG bericht.

Retourwaarde

De ingang naar het zojuist gemaakte dialoogvenster.

Opmerkingen

Dit dialoogvenster wordt automatisch aan het CDialogImpl object gekoppeld. Als u een modaal dialoogvenster wilt maken, roept u DoModal aan. De tweede onderdrukking hierboven wordt alleen gebruikt met CComControl.

CDialogImpl::D estroyWindow

Vernietigt een modusloos dialoogvenster.

BOOL DestroyWindow();

Retourwaarde

WAAR als het dialoogvenster is vernietigd; anders ONWAAR.

Opmerkingen

Retourneert TRUE als het dialoogvenster is vernietigd; anders ONWAAR.

CDialogImpl::D ialogProc

Met deze statische functie wordt de dialoogvensterprocedure geïmplementeerd.

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

Parameterwaarden

hWnd
[in] De greep naar het dialoogvenster.

uMsg
[in] Het bericht dat naar het dialoogvenster wordt verzonden.

wParam
[in] Aanvullende berichtspecifieke informatie.

lParam
[in] Aanvullende berichtspecifieke informatie.

Retourwaarde

WAAR als het bericht wordt verwerkt; anders, ONWAAR.

Opmerkingen

DialogProc gebruikt de standaardberichttoewijzing om berichten naar de juiste handlers te sturen.

U kunt overschrijven DialogProc om een ander mechanisme te bieden voor het verwerken van berichten.

CDialogImpl::D oModal

Hiermee maakt u een modaal dialoogvenster.

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

Parameterwaarden

hWndParent
[in] De ingang naar het eigenaarvenster. De standaardwaarde is de retourwaarde van de functie GetActiveWindow Win32.

dwInitParam
[in] Hiermee geeft u de waarde die moet worden doorgegeven aan het dialoogvenster in de parameter lParam van het WM_INITDIALOG bericht.

Retourwaarde

Als dit lukt, wordt de waarde van de parameter nRetCode opgegeven in de aanroep naar EndDialog. Anders, -1.

Opmerkingen

Dit dialoogvenster wordt automatisch aan het CDialogImpl object gekoppeld.

Als u een modusloos dialoogvenster wilt maken, roept u Maken aan.

CDialogImpl::EndDialog

Vernietigt een modaal dialoogvenster.

BOOL EndDialog(int nRetCode);

Parameterwaarden

nRetCode
[in] De waarde die moet worden geretourneerd door CDialogImpl::D oModal.

Retourwaarde

WAAR als het dialoogvenster wordt vernietigd; anders, ONWAAR.

Opmerkingen

EndDialog moet worden aangeroepen via de dialoogvensterprocedure. Nadat het dialoogvenster is vernietigd, gebruikt Windows de waarde van nRetCode als de retourwaarde waarvoor DoModalhet dialoogvenster is gemaakt.

Opmerking

Roep niet EndDialog aan om een modusloos dialoogvenster te vernietigen. Roep in plaats daarvan CWindow::D estroyWindow aan.

CDialogImpl::GetDialogProc

Retourneert DialogProc, de huidige dialoogvensterprocedure.

virtual WNDPROC GetDialogProc();

Retourwaarde

De huidige dialoogvensterprocedure.

Opmerkingen

Overschrijf deze methode om de dialoogvensterprocedure te vervangen door uw eigen procedure.

CDialogImpl::MapDialogRect

Hiermee worden de dialoogvenstereenheden van de opgegeven rechthoek geconverteerd naar schermeenheden (pixels).

BOOL MapDialogRect(LPRECT lpRect);

Parameterwaarden

lpRect
Verwijst naar een CRect object- of RECT-structuur die de clientcoördinaten van de update ontvangt die de updateregio omsluit.

Retourwaarde

Niet-nul als de update slaagt; 0 als de update mislukt. Als u uitgebreide foutinformatie wilt ophalen, roept u het aan GetLastError.

Opmerkingen

De functie vervangt de coördinaten in de opgegeven RECT structuur door de geconverteerde coördinaten, waardoor de structuur kan worden gebruikt om een dialoogvenster te maken of een besturingselement in een dialoogvenster te plaatsen.

CDialogimpl::OnFinalMessage

Aangeroepen na ontvangst van het laatste bericht (meestal WM_NCDESTROY).

virtual void OnFinalMessage(HWND hWnd);

Parameterwaarden

hWnd
[in] Een handgreep naar het raam dat wordt vernietigd.

Opmerkingen

Als u uw object automatisch wilt verwijderen bij de vernietiging van het venster, kunt u dit aanroepen .

CDialogImpl::StartDialogProc

Wordt slechts eenmaal aangeroepen, wanneer het eerste bericht wordt ontvangen, om berichten te verwerken die naar het dialoogvenster worden verzonden.

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

Parameterwaarden

hWnd
[in] De greep naar het dialoogvenster.

uMsg
[in] Het bericht dat naar het dialoogvenster wordt verzonden.

wParam
[in] Aanvullende berichtspecifieke informatie.

lParam
[in] Aanvullende berichtspecifieke informatie.

Retourwaarde

De vensterprocedure.

Opmerkingen

Na de eerste aanroep naar StartDialogProc, DialogProc wordt ingesteld als een dialoogvensterprocedure en gaan er verdere aanroepen naartoe.

Zie ook

BEGIN_MSG_MAP
Overzicht van klassen