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 };
où 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.