Partager via


CDialogImpl, classe

Cette classe fournit des méthodes pour créer une boîte de dialogue modale ou sans mode.

Important

Cette classe et ses membres ne peuvent pas être utilisés dans les applications qui s’exécutent dans Windows Runtime.

Syntaxe

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

Paramètres

T
Votre classe, dérivée de CDialogImpl.

TBase
Classe de base de votre nouvelle classe. La classe de base par défaut est CWindow.

Membres

Méthodes

Fonction Description
Créer Crée une boîte de dialogue sans mode.
DestroyWindow Détruit une boîte de dialogue sans mode.
DoModal Crée une boîte de dialogue modale.
EndDialog Détruit une boîte de dialogue modale.

CDialogImplBaseT, méthodes

Fonction Description
GetDialogProc Retourne la procédure de boîte de dialogue active.
MapDialogRect Mappe les unités de boîte de dialogue du rectangle spécifié aux unités d’écran (pixels).
OnFinalMessage Appelé après avoir reçu le dernier message, WM_NCDESTROY généralement.

Fonctions statiques

Fonction Description
DialogProc Traite les messages envoyés à la boîte de dialogue.
StartDialogProc Appelé lorsque le premier message est reçu pour traiter les messages envoyés à la boîte de dialogue.

Notes

Avec CDialogImpl vous pouvez créer une boîte de dialogue modale ou sans mode. CDialogImpl fournit la procédure de boîte de dialogue, qui utilise le mappage de messages par défaut pour diriger les messages vers les gestionnaires appropriés.

Le destructeur de ~CWindowImplRoot classe de base garantit que la fenêtre est partie avant de détruire l’objet.

CDialogImpl dérive de CDialogImplBaseT, qui, à son tour, dérive CWindowImplRoot.

Remarque

Votre classe doit définir un IDD membre qui spécifie l’ID de ressource du modèle de dialogue. Par exemple, l’Assistant Projet ATL ajoute automatiquement la ligne suivante à votre classe :

enum { IDD = IDD_MYDLG };

MyDlg est le nom court entré dans la page Noms de l’Assistant.

Pour plus d'informations sur Consultez
Création de contrôles Tutoriel ATL
Utilisation de boîtes de dialogue dans ATL ATL, classes de fenêtre
Assistant Projet ATL Création d’un projet ATL
Boîtes de dialogue Boîtes de dialogue et rubriques suivantes dans le Kit de développement logiciel (SDK) Windows

Spécifications

En-tête : atlwin.h

CDialogImpl ::Create

Crée une boîte de dialogue sans mode.

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

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

Paramètres

hWndParent
[in] Handle de la fenêtre propriétaire.

RECT&rect [in] Structure RECT spécifiant la taille et la position du dialogue.

dwInitParam
[in] Spécifie la valeur à passer à la boîte de dialogue dans le paramètre lParam du message WM_INITDIALOG.

Valeur de retour

Handle de la boîte de dialogue nouvellement créée.

Notes

Cette boîte de dialogue est automatiquement attachée à l’objet CDialogImpl . Pour créer une boîte de dialogue modale, appelez DoModal. Le deuxième remplacement ci-dessus est utilisé uniquement avec CComControl.

CDialogImpl ::D estroyWindow

Détruit une boîte de dialogue sans mode.

BOOL DestroyWindow();

Valeur de retour

TRUE si la boîte de dialogue a été détruite avec succès ; sinon FALSE.

Notes

Retourne TRUE si la boîte de dialogue a été détruite avec succès ; sinon FALSE.

CDialogImpl ::D ialogProc

Cette fonction statique implémente la procédure de boîte de dialogue.

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

Paramètres

hWnd
[in] Handle de la boîte de dialogue.

uMsg
[in] Message envoyé à la boîte de dialogue.

wParam
[in] Informations supplémentaires spécifiques aux messages.

lParam
[in] Informations supplémentaires spécifiques aux messages.

Valeur de retour

TRUE si le message est traité ; sinon, FALSE.

Notes

DialogProc utilise le mappage de messages par défaut pour diriger les messages vers les gestionnaires appropriés.

Vous pouvez remplacer DialogProc pour fournir un mécanisme différent pour la gestion des messages.

CDialogImpl ::D oModal

Crée une boîte de dialogue modale.

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

Paramètres

hWndParent
[in] Handle de la fenêtre propriétaire. La valeur par défaut est la valeur de retour de la fonction Win32 GetActiveWindow .

dwInitParam
[in] Spécifie la valeur à passer à la boîte de dialogue dans le paramètre lParam du message WM_INITDIALOG.

Valeur de retour

Si elle réussit, la valeur du paramètre nRetCode spécifié dans l’appel à EndDialog. Sinon, -1.

Notes

Cette boîte de dialogue est automatiquement attachée à l’objet CDialogImpl .

Pour créer une boîte de dialogue sans mode, appelez Create.

CDialogImpl ::EndDialog

Détruit une boîte de dialogue modale.

BOOL EndDialog(int nRetCode);

Paramètres

nRetCode
[in] Valeur à renvoyer par CDialogImpl ::D oModal.

Valeur de retour

TRUE si la boîte de dialogue est détruite ; sinon, FALSE.

Notes

EndDialog doit être appelé par le biais de la procédure de dialogue. Une fois la boîte de dialogue détruite, Windows utilise la valeur de nRetCode comme valeur de retour pour DoModal, qui a créé la boîte de dialogue.

Remarque

N’appelez EndDialog pas pour détruire une boîte de dialogue sans mode. Appelez CWindow ::D estroyWindow à la place.

CDialogImpl ::GetDialogProc

Retourne DialogProc, la procédure de boîte de dialogue active.

virtual WNDPROC GetDialogProc();

Valeur de retour

Procédure de boîte de dialogue active.

Notes

Remplacez cette méthode pour remplacer la procédure de boîte de dialogue par la vôtre.

CDialogImpl ::MapDialogRect

Convertit (mappe) les unités de boîte de dialogue du rectangle spécifié en unités d’écran (pixels).

BOOL MapDialogRect(LPRECT lpRect);

Paramètres

lpRect
Pointe vers un objet ou une CRect structure RECT qui doit recevoir les coordonnées client de la mise à jour qui entoure la région de mise à jour.

Valeur de retour

Différent de zéro si la mise à jour réussit ; 0 si la mise à jour échoue. Pour obtenir des informations plus complètes sur les erreurs, appelez GetLastError.

Notes

La fonction remplace les coordonnées de la structure spécifiée RECT par les coordonnées converties, ce qui permet à la structure d’être utilisée pour créer une boîte de dialogue ou positionner un contrôle dans une boîte de dialogue.

CDialogImpl ::OnFinalMessage

Appelé après avoir reçu le dernier message (généralement WM_NCDESTROY).

virtual void OnFinalMessage(HWND hWnd);

Paramètres

hWnd
[in] Poignée de la fenêtre détruite.

Notes

Notez que si vous souhaitez supprimer automatiquement votre objet lors de la destruction de la fenêtre, vous pouvez appeler supprimer ceci ; ici.

CDialogImpl ::StartDialogProc

Appelé une seule fois, lorsque le premier message est reçu, pour traiter les messages envoyés à la boîte de dialogue.

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

Paramètres

hWnd
[in] Handle de la boîte de dialogue.

uMsg
[in] Message envoyé à la boîte de dialogue.

wParam
[in] Informations supplémentaires spécifiques aux messages.

lParam
[in] Informations supplémentaires spécifiques aux messages.

Valeur de retour

Procédure de fenêtre.

Notes

Après l’appel initial à StartDialogProc, DialogProc est défini en tant que procédure de dialogue, et d’autres appels s’y trouvent.

Voir aussi

BEGIN_MSG_MAP
Vue d’ensemble de la classe