Partager via


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 :

  1. Dérivez une classe de CMFCDesktopAlertDialog.

  2. Créer un modèle de boîte de dialogue enfant dans les ressources.

  3. 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.

  4. 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 :

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

CObject

CCmdTarget

CWnd

CMFCDesktopAlertWnd

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