CMFCDesktopAlertWnd Class
La CMFCDesktopAlertWnd
classe implémente les fonctionnalités d’une boîte de dialogue sans mode qui apparaît à l’écran pour informer l’utilisateur d’un événement.
Pour plus d’informations, consultez le code source situé dans le dossier VC\atlmfc\src\mfc de votre installation de Visual Studio.
Syntaxe
class CMFCDesktopAlertWnd : public CWnd
Membres
Méthodes publiques
Nom | Description |
---|---|
CMFCDesktopAlertWnd ::Create | Crée et initialise la fenêtre d’alerte de bureau. |
CMFCDesktopAlertWnd ::GetAnimationSpeed | Retourne la vitesse d’animation. |
CMFCDesktopAlertWnd ::GetAnimationType | Retourne le type d’animation. |
CMFCDesktopAlertWnd ::GetAutoCloseTime | Retourne le délai d’expiration de fermeture automatique. |
CMFCDesktopAlertWnd ::GetCaptionHeight | Retourne la hauteur de la légende. |
CMFCDesktopAlertWnd ::GetDialogSize | |
CMFCDesktopAlertWnd ::GetLastPos | Retourne la dernière position valide de la fenêtre d’alerte de bureau sur l’écran. |
CMFCDesktopAlertWnd ::GetTransparency | Retourne le niveau de transparence. |
CMFCDesktopAlertWnd ::HasSmallCaption | Détermine si la fenêtre d’alerte de bureau s’affiche avec la petite légende. |
CMFCDesktopAlertWnd ::OnBeforeShow | |
CMFCDesktopAlertWnd ::OnClickLinkButton | Appelé par l’infrastructure lorsque l’utilisateur clique sur un bouton de lien situé dans le menu d’alerte de bureau. |
CMFCDesktopAlertWnd ::OnCommand | L’infrastructure appelle cette fonction membre lorsque l’utilisateur sélectionne un élément dans un menu, lorsqu’un contrôle enfant envoie un message de notification ou lorsqu’une séquence de touches d’accélérateur est traduite. (Remplacements CWnd ::OnCommand.) |
CMFCDesktopAlertWnd ::OnDraw | |
CMFCDesktopAlertWnd ::P rocessCommand | |
CMFCDesktopAlertWnd ::SetAnimationSpeed | Définit la nouvelle vitesse d’animation. |
CMFCDesktopAlertWnd ::SetAnimationType | Définit le type d’animation. |
CMFCDesktopAlertWnd ::SetAutoCloseTime | Définit le délai d’expiration de fermeture automatique. |
CMFCDesktopAlertWnd ::SetSmallCaption | Bascule entre les légendes petites et normales. |
CMFCDesktopAlertWnd ::SetTransparency | Définit le niveau de transparence. |
Notes
Une fenêtre d’alerte de bureau peut être transparente, elle peut apparaître avec des effets d’animation et peut disparaître (après un délai spécifié ou lorsque l’utilisateur l’ignore en cliquant sur le bouton fermer).
Une fenêtre d’alerte de bureau peut également contenir une boîte de dialogue par défaut qui contient à son tour une icône, un texte de message (étiquette) et un lien. Une fenêtre d’alerte de bureau peut également contenir une boîte de dialogue personnalisée à partir des ressources de l’application.
Vous créez une fenêtre d’alerte de bureau en deux étapes. Tout d’abord, appelez le constructeur pour construire l’objet CMFCDesktopAlertWnd
. Ensuite, appelez la fonction membre CMFCDesktopAlertWnd ::Create pour créer la fenêtre et l’attacher à l’objet CMFCDesktopAlertWnd
.
L’objet CMFCDesktopAlertWnd
crée une boîte de dialogue enfant spéciale qui remplit la zone cliente de la fenêtre d’alerte de bureau. La boîte de dialogue possède tous les contrôles qui sont positionnés dessus.
Pour afficher une boîte de dialogue personnalisée dans la fenêtre contextuelle, procédez comme suit :
Dérivez une classe de
CMFCDesktopAlertDialog
.Créer un modèle de boîte de dialogue enfant dans les ressources.
Appelez CMFCDesktopAlertWnd ::Create à l’aide de l’ID de ressource du modèle de boîte de dialogue et d’un pointeur vers les informations de classe runtime de la classe dérivée.
Programmez la boîte de dialogue personnalisée pour gérer toutes les notifications provenant des contrôles hébergés ou programmez les contrôles hébergés pour gérer ces notifications directement.
Utilisez les fonctions suivantes pour contrôler le comportement de la fenêtre d’alerte de bureau :
Définissez le type d’animation en appelant CMFCDesktopAlertWnd ::SetAnimationType. Les options valides incluent le déroulement, la diapositive et le fondu.
Définissez la vitesse de l’image d’animation en appelant CMFCDesktopAlertWnd ::SetAnimationSpeed.
Définissez le niveau de transparence en appelant CMFCDesktopAlertWnd ::SetTransparency.
Remplacez la taille de la légende par petite en appelant CMFCDesktopAlertWnd ::SetSmallCaption. La petite légende est de 7 pixels.
Exemple
L’exemple suivant montre comment utiliser différentes méthodes dans la CMFCDesktopAlertWnd
classe pour configurer un CMFCDesktopAlertWnd
objet. L’exemple montre comment définir un type d’animation, définir la transparence de la fenêtre contextuelle, spécifier que la fenêtre d’alerte affiche une petite légende et définir le temps écoulé avant la fermeture automatique de la fenêtre d’alerte. L’exemple montre également comment créer et initialiser la fenêtre d’alerte de bureau. Cet extrait de code fait partie de l’exemple de démonstration d’alerte de bureau.
CMFCDesktopAlertWnd *pPopup = new CMFCDesktopAlertWnd;
// int m_nAnimation
pPopup->SetAnimationType((CMFCPopupMenu::ANIMATION_TYPE)m_nAnimation);
// int m_nAnimationSpeed
pPopup->SetAnimationSpeed(m_nAnimationSpeed);
// int m_nTransparency
pPopup->SetTransparency((BYTE)m_nTransparency);
// BOOL m_bSmallCaption
pPopup->SetSmallCaption(m_bSmallCaption);
// BOOL m_bAutoClose, int m_nAutoCloseTime
pPopup->SetAutoCloseTime(m_bAutoClose ? m_nAutoCloseTime * 1000 : 0);
// int m_nPopupSource
if (m_nPopupSource == 0)
{
// int m_nVisualMngr
// CPoint m_ptPopup
// The this pointer points to a CDesktopAlertDemoDlg class which extends the CDialogEx class.
if (m_nVisualMngr == 5) // MSN-style
{
pPopup->Create(this, IDD_DIALOG2, NULL,
m_ptPopup, RUNTIME_CLASS(CMSNDlg));
}
else
{
pPopup->Create(this, IDD_DIALOG1,
m_menuPopup.GetSubMenu(0)->GetSafeHmenu(),
m_ptPopup, RUNTIME_CLASS(CMyPopupDlg));
}
}
Hiérarchie d'héritage
Spécifications
En-tête : afxDesktopAlertWnd.h
CMFCDesktopAlertWnd ::Create
Crée et initialise la fenêtre d’alerte de bureau.
virtual BOOL Create(
CWnd* pWndOwner,
UINT uiDlgResID,
HMENU hMenu = NULL,
CPoint ptPos = CPoint(-1,-1),
CRuntimeClass* pRTIDlgBar = RUNTIME_CLASS(CMFCDesktopAlertDialog));
virtual BOOL Create(
CWnd* pWndOwner,
CMFCDesktopAlertWndInfo& params,
HMENU hMenu = NULL,
CPoint ptPos = CPoint(-1,-1));
Paramètres
pWndOwner
[in, out] Spécifie le propriétaire de la fenêtre d’alerte. Ce propriétaire recevra ensuite toutes les notifications pour la fenêtre d’alerte de bureau. Cette valeur ne peut pas être NULL.
uiDlgResID
[in] Spécifie l’ID de ressource de la fenêtre d’alerte.
hMenu
[in] Spécifie le menu qui s’affiche lorsque l’utilisateur clique sur le bouton de menu. Si la valeur est NULL, le bouton de menu n’est pas affiché.
ptPos
[in] Spécifie la position initiale où la fenêtre d’alerte s’affiche, à l’aide des coordonnées de l’écran. Si ce paramètre est (-1, -1), la fenêtre d’alerte s’affiche dans le coin inférieur droit de l’écran.
pRTIDlgBar
[in] Informations de classe Runtime pour une classe de boîte de dialogue personnalisée qui couvre la zone cliente de la fenêtre d’alerte.
params
[in] Spécifie les paramètres utilisés pour créer une fenêtre d’alerte.
Valeur de retour
TRUE si la fenêtre d’alerte a été créée avec succès ; sinon, FALSE.
Notes
Appelez cette méthode pour créer une fenêtre d’alerte. La zone cliente de la fenêtre d’alerte contient une boîte de dialogue enfant qui héberge tous les contrôles affichés à l’utilisateur.
La première surcharge de méthode crée une fenêtre d’alerte qui contient une boîte de dialogue enfant chargée à partir des ressources de l’application. La première surcharge de méthode peut également spécifier des informations de classe runtime pour une classe de boîte de dialogue personnalisée.
La deuxième surcharge de méthode crée une fenêtre d’alerte qui contient des contrôles par défaut. Vous pouvez spécifier les contrôles à afficher en modifiant la classe CMFCDesktopAlertWndInfo.
CMFCDesktopAlertWnd ::GetAnimationSpeed
Retourne la vitesse d’animation.
UINT GetAnimationSpeed() const;
Valeur de retour
Vitesse d’animation de la fenêtre d’alerte, en millisecondes.
Notes
La vitesse d’animation décrit la vitesse à laquelle la fenêtre d’alerte s’ouvre et se ferme.
CMFCDesktopAlertWnd ::GetAnimationType
Retourne le type d’animation.
CMFCPopupMenu::ANIMATION_TYPE GetAnimationType();
Valeur de retour
L’un des types d’animation suivants :
NO_ANIMATION
DÉPLIER
DIAPOSITIVE
Se faner
SYSTEM_DEFAULT_ANIMATION
CMFCDesktopAlertWnd ::GetAutoCloseTime
Retourne le délai d’expiration de fermeture automatique.
int GetAutoCloseTime() const;
Valeur de retour
Heure, en millisecondes, après laquelle la fenêtre d’alerte se ferme automatiquement.
Notes
Utilisez cette méthode pour déterminer combien de temps doit s’écouler avant la fermeture automatique de la fenêtre d’alerte.
CMFCDesktopAlertWnd ::GetCaptionHeight
Retourne la hauteur de la légende.
virtual int GetCaptionHeight();
Valeur de retour
Hauteur, en pixels, de la légende.
Notes
Cette méthode peut être substituée dans une classe dérivée. L’implémentation par défaut : retourne la petite valeur de hauteur de légende (7 pixels) si la fenêtre contextuelle doit afficher la petite légende ou la valeur obtenue à partir de la fonction GetSystemMetrics(SM_CYSMCAPTION)
API Windows.
CMFCDesktopAlertWnd ::GetLastPos
Retourne la dernière position de la fenêtre d’alerte de bureau sur l’écran.
CPoint GetLastPos() const;
Valeur de retour
Point, en coordonnées d’écran.
Notes
Cette méthode retourne la dernière position valide de la fenêtre d’alerte à l’écran.
CMFCDesktopAlertWnd ::GetTransparency
Retourne le niveau de transparence.
BYTE GetTransparency() const;
Valeur de retour
Niveau de transparence compris entre 0 et 255. Plus la valeur est élevée, plus la fenêtre est opaque.
Notes
Utilisez cette méthode pour récupérer le niveau de transparence actuel de la fenêtre d’alerte.
CMFCDesktopAlertWnd ::HasSmallCaption
Détermine si la fenêtre d’alerte de bureau a une petite légende ou une légende de taille régulière.
BOOL HasSmallCaption() const;
Valeur de retour
TRUE si la fenêtre contextuelle s’affiche avec une petite légende ; FALSE si la fenêtre contextuelle s’affiche avec une légende de taille régulière.
Notes
Utilisez cette méthode pour déterminer si la fenêtre contextuelle a une petite légende ou une légende de taille régulière. Par défaut, la petite légende est de 7 pixels. Vous pouvez obtenir la hauteur de la légende de taille régulière en appelant la fonction GetSystemMetrics(SM_CYCAPTION)
API Windows.
CMFCDesktopAlertWnd ::OnBeforeShow
virtual BOOL OnBeforeShow(CPoint&);
Paramètres
[in] CPoint&
Valeur de retour
Notes
CMFCDesktopAlertWnd ::OnClickLinkButton
Appelé par l’infrastructure lorsque l’utilisateur clique sur un bouton de lien situé dans le menu d’alerte de bureau.
virtual BOOL OnClickLinkButton(UINT uiCmdID);
Paramètres
uiCmdID
[in] Ce paramètre n’est pas utilisé.
Valeur de retour
Toujours FALSE.
Notes
Remplacez cette méthode dans une classe dérivée si vous souhaitez être averti lorsqu’un utilisateur clique sur le lien dans la fenêtre d’alerte.
CMFCDesktopAlertWnd ::OnCommand
virtual BOOL OnCommand(
WPARAM wParam,
LPARAM lParam);
Paramètres
[in] wParam
[in] lParam
Valeur de retour
Notes
CMFCDesktopAlertWnd ::OnDraw
virtual void OnDraw(CDC* pDC);
Paramètres
[in] pDC
Notes
CMFCDesktopAlertWnd ::P rocessCommand
BOOL ProcessCommand(HWND hwnd);
Paramètres
[in] hwnd
Valeur de retour
Notes
CMFCDesktopAlertWnd ::SetAnimationSpeed
Définit la nouvelle vitesse d’animation.
void SetAnimationSpeed(UINT nSpeed);
Paramètres
nSpeed
[in] Spécifie la nouvelle vitesse d’animation, en millisecondes.
Notes
Appelez cette méthode pour définir la vitesse d’animation de la fenêtre d’alerte. La vitesse d’animation par défaut est de 30 millisecondes.
CMFCDesktopAlertWnd ::SetAnimationType
Définit le type d’animation.
void SetAnimationType(CMFCPopupMenu::ANIMATION_TYPE type);
Paramètres
type
[in] Spécifie le type d’animation.
Notes
Appelez cette méthode pour définir le type d’animation. Vous pouvez spécifier l’une des valeurs suivantes :
NO_ANIMATION
DÉPLIER
DIAPOSITIVE
Se faner
SYSTEM_DEFAULT_ANIMATION
CMFCDesktopAlertWnd ::SetAutoCloseTime
Définit le délai d’expiration de fermeture automatique.
void SetAutoCloseTime(int nTime);
Paramètres
nTime
[in] Temps, en millisecondes, qui s’écoule avant la fermeture automatique de la fenêtre d’alerte.
Notes
La fenêtre d’alerte est automatiquement fermée après l’heure spécifiée si l’utilisateur n’interagit pas avec la fenêtre.
CMFCDesktopAlertWnd ::SetSmallCaption
Bascule entre les légendes de petite taille et de taille régulière.
void SetSmallCaption(BOOL bSmallCaption = TRUE);
Paramètres
bSmallCaption
[in] TRUE pour spécifier que la fenêtre d’alerte affiche une petite légende ; sinon, FALSE pour spécifier que la fenêtre d’alerte affiche une légende de taille normale.
Notes
Appelez cette méthode pour afficher la légende petite ou normale. Par défaut, la petite légende est de 7 pixels. Vous pouvez obtenir la taille de la légende régulière en appelant la fonction GetSystemMetrics(SM_CYCAPTION)
API Windows.
CMFCDesktopAlertWnd ::SetTransparency
Définit le niveau de transparence de la fenêtre contextuelle.
void SetTransparency(BYTE nTransparency);
Paramètres
nTransparency
[in] Spécifie le niveau de transparence. Cette valeur doit être comprise entre 0 et 255, inclus. Plus la valeur est élevée, plus la fenêtre est opaque.
Notes
Appelez cette fonction pour définir le niveau de transparence de la fenêtre contextuelle.
CMFCDesktopAlertWnd ::GetDialogSize
virtual CSize GetDialogSize();
Valeur de retour
Notes
Voir aussi
Graphique hiérarchique
Classes
CMFCDesktopAlertWndInfo, classe
CMFCDesktopAlertDialog, classe
CWnd, classe