Compartir por


CMFCDesktopAlertWnd Class

La clase CMFCDesktopAlertWnd implementa la función de un cuadro de diálogo sin modo que aparece en la pantalla para informar al usuario sobre un evento.

Para obtener información más detallada, consulta el código fuente que se ubica en la carpeta VC\atlmfc\src\mfc de la instalación de Visual Studio.

Sintaxis

class CMFCDesktopAlertWnd : public CWnd

Miembros

Métodos públicos

Nombre Descripción
CMFCDesktopAlertWnd::Create Crea e inicializa la ventana Alerta de escritorio.
CMFCDesktopAlertWnd::GetAnimationSpeed Devuelve la velocidad de animación.
CMFCDesktopAlertWnd::GetAnimationType Devuelve el tipo de animación.
CMFCDesktopAlertWnd::GetAutoCloseTime Devuelve el tiempo de espera de cierre automático.
CMFCDesktopAlertWnd::GetCaptionHeight Devuelve el alto del subtítulo.
CMFCDesktopAlertWnd::GetDialogSize
CMFCDesktopAlertWnd::GetLastPos Devuelve la última posición válida de la ventana Alerta de escritorio en la pantalla.
CMFCDesktopAlertWnd::GetTransparency Devuelve el nivel de transparencia.
CMFCDesktopAlertWnd::HasSmallCaption Determina si la ventana Alerta de escritorio se muestra con el subtítulo pequeño.
CMFCDesktopAlertWnd::OnBeforeShow
CMFCDesktopAlertWnd::OnClickLinkButton Lo llama el marco cuando el usuario hace clic en un botón de vínculo ubicado en el menú de alertas de escritorio.
CMFCDesktopAlertWnd::OnCommand El marco llama a esta función miembro cuando el usuario selecciona un elemento de un menú, cuando un control secundario envía un mensaje de notificación o cuando se traduce una pulsación de tecla del acelerador. (Invalida a CWnd::OnCommand).
CMFCDesktopAlertWnd::OnDraw
CMFCDesktopAlertWnd::ProcessCommand
CMFCDesktopAlertWnd::SetAnimationSpeed Establece la velocidad de animación nueva.
CMFCDesktopAlertWnd::SetAnimationType Establece el tipo de animación.
CMFCDesktopAlertWnd::SetAutoCloseTime Establece el tiempo de espera de cierre automático.
CMFCDesktopAlertWnd::SetSmallCaption Cambia entre subtítulos pequeños y normales.
CMFCDesktopAlertWnd::SetTransparency Establece el nivel de transparencia.

Comentarios

Una ventana de alerta de escritorio puede ser transparente, aparecer con efectos de animación y desaparecer (después de un retraso especificado o cuando el usuario la descarte haciendo clic en el botón Cerrar).

Una ventana de alertas de escritorio también puede contener un cuadro de diálogo predeterminado que, a su vez, contiene un icono, un texto de mensaje (una etiqueta) y un vínculo. Como alternativa, una ventana Alerta de escritorio puede contener un cuadro de diálogo personalizado de los recursos de la aplicación.

Una ventana Alerta de escritorio se crea en dos pasos. En primer lugar, llame al constructor para crear el objeto CMFCDesktopAlertWnd. En segundo lugar, llame a la función miembro CMFCDesktopAlertWnd::Create para crear la ventana de la barra de estado y asociarla al objeto CMFCDesktopAlertWnd.

El objeto CMFCDesktopAlertWnd crea un cuadro de diálogo secundario especial que rellena el área cliente de la ventana Alerta de escritorio. El cuadro de diálogo posee todos los controles que se colocan en él.

Para mostrar un cuadro de diálogo personalizado en la ventana emergente, siga estos pasos:

  1. Derivar una clase de CMFCDesktopAlertDialog.

  2. Crear una plantilla de cuadro de diálogo secundario en los recursos.

  3. Llamar a CMFCDesktopAlertWnd::Create con el id. de recurso de la plantilla de cuadro de diálogo y un puntero a la información de clase en tiempo de ejecución de la clase derivada.

  4. Programar el cuadro de diálogo personalizado para controlar todas las notificaciones que proceden de los controles hospedados o programar los controles hospedados para controlar directamente estas notificaciones.

Use las funciones siguientes para controlar el comportamiento de la ventana Alerta de escritorio:

Ejemplo

En el ejemplo siguiente se muestra cómo configurar un objeto CMFCDesktopAlertWnd mediante varios métodos de la clase CMFCDesktopAlertWnd. En el ejemplo se muestra cómo establecer un tipo de animación, establecer la transparencia de la ventana emergente, especificar que la ventana de alerta muestra un subtítulo pequeño y establecer el tiempo transcurrido antes de que se cierre automáticamente la ventana de alertas. En el ejemplo también se muestra cómo crear e inicializar la ventana Alerta de escritorio. Este fragmento de código forma parte del ejemplo de demostración de alertas de escritorio.

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));
   }
}

Jerarquía de herencia

CObject

CCmdTarget

CWnd

CMFCDesktopAlertWnd

Requisitos

Encabezado: afxDesktopAlertWnd.h

CMFCDesktopAlertWnd::Create

Crea e inicializa la ventana Alerta de escritorio.

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));

Parámetros

pWndOwner
[in, out] Especifica el propietario de la ventana de alertas. Después, ese propietario recibirá todas las notificaciones de la ventana Alerta de escritorio. Este valor no puede ser NULL.

uiDlgResID
[in] Especifica el id. de recurso de la ventana de alertas.

hMenu
[in] Especifica el menú que se muestra cuando el usuario hace clic en el botón de menú. Si es NULL, no se muestra el botón de menú.

ptPos
[in] Especifica la posición inicial en la que se muestra la ventana de alertas mediante coordenadas de pantalla. Si este parámetro es (-1, -1), la ventana de alertas se muestra en la esquina inferior derecha de la pantalla.

pRTIDlgBar
[in] Información de clase en tiempo de ejecución de una clase de cuadro de diálogo personalizada que abarca el área cliente de la ventana de alertas.

params
[in] Especifica los parámetros que se usan para crear una ventana de alertas.

Valor devuelto

Es TRUE si la ventana de alertas se creó correctamente; de lo contrario, es FALSE.

Comentarios

Llame a este método para crear una ventana de alertas. El área cliente de la ventana de alertas contiene un cuadro de diálogo secundario que hospeda todos los controles que se muestran al usuario.

La primera sobrecarga de método crea una ventana de alertas que contiene un cuadro de diálogo secundario que se carga desde los recursos de la aplicación. La primera sobrecarga de método también puede especificar información de clase en tiempo de ejecución para una clase de cuadro de diálogo personalizada.

La segunda sobrecarga de método crea una ventana de alertas que contiene controles predeterminados. Puede especificar qué controles se van a mostrar modificando la clase CMFCDesktopAlertWndInfo.

CMFCDesktopAlertWnd::GetAnimationSpeed

Devuelve la velocidad de animación.

UINT GetAnimationSpeed() const;

Valor devuelto

Velocidad de animación de la ventana de alertas, en milisegundos.

Comentarios

La velocidad de animación describe la rapidez con la que se abre y s cierra la ventana de alertas.

CMFCDesktopAlertWnd::GetAnimationType

Devuelve el tipo de animación.

CMFCPopupMenu::ANIMATION_TYPE GetAnimationType();

Valor devuelto

Uno de los tipos de animación siguientes:

  • NO_ANIMATION

  • UNFOLD

  • DIAPOSITIVA

  • ATENUAR

  • SYSTEM_DEFAULT_ANIMATION

CMFCDesktopAlertWnd::GetAutoCloseTime

Devuelve el tiempo de espera de cierre automático.

int GetAutoCloseTime() const;

Valor devuelto

La hora, en milisegundos, tras la cual se cerrará automáticamente la ventana de alertas.

Comentarios

Use este método para determinar cuánto tiempo debe transcurrir antes de que se cierre automáticamente la ventana de alertas.

CMFCDesktopAlertWnd::GetCaptionHeight

Devuelve el alto del subtítulo.

virtual int GetCaptionHeight();

Valor devuelto

Alto en píxeles del subtítulo.

Comentarios

Este método se puede invalidar en una clase derivada. La implementación predeterminada devuelve el valor de alto de subtítulo pequeño (7 píxeles) si la ventana emergente debe mostrar el subtítulo pequeño, o bien el valor obtenido de la función GetSystemMetrics(SM_CYSMCAPTION)de la API de Windows.

CMFCDesktopAlertWnd::GetLastPos

Devuelve la última posición de la ventana Alerta de escritorio en la pantalla.

CPoint GetLastPos() const;

Valor devuelto

Un punto, en coordenadas de pantalla.

Comentarios

Este método devuelve la última posición válida de la ventana de alertas en la pantalla.

CMFCDesktopAlertWnd::GetTransparency

Devuelve el nivel de transparencia.

BYTE GetTransparency() const;

Valor devuelto

Un nivel de transparencia comprendido entre 0 y 255, ambos incluidos. Cuanto mayor sea el valor, más opaca será la ventana.

Comentarios

Use este método para recuperar el nivel de transparencia actual de la ventana de alertas.

CMFCDesktopAlertWnd::HasSmallCaption

Determina si la ventana Alerta de escritorio tiene un subtítulo pequeño o de tamaño normal.

BOOL HasSmallCaption() const;

Valor devuelto

Es TRUE si la ventana emergente se muestra con un subtítulo pequeño; es FALSE si se muestra con un subtítulo de tamaño normal.

Comentarios

Use este método para determinar si la ventana emergente tiene un subtítulo pequeño o de tamaño normal. De manera predeterminada, el subtítulo pequeño es de 7 píxeles de alto. Puede obtener el alto del subtítulo de tamaño normal llamando a la función GetSystemMetrics(SM_CYCAPTION) de la API de Windows.

CMFCDesktopAlertWnd::OnBeforeShow

virtual BOOL OnBeforeShow(CPoint&);

Parámetros

[in] CPoint&

Valor devuelto

Comentarios

CMFCDesktopAlertWnd::OnClickLinkButton

Lo llama el marco cuando el usuario hace clic en un botón de vínculo ubicado en el menú de alertas de escritorio.

virtual BOOL OnClickLinkButton(UINT uiCmdID);

Parámetros

uiCmdID
[in] Este parámetro no se utiliza.

Valor devuelto

Siempre FALSE.

Comentarios

Invalide este método en una clase derivada si quiere recibir una notificación cuando un usuario hace clic en el vínculo de la ventana de alertas.

CMFCDesktopAlertWnd::OnCommand

virtual BOOL OnCommand(
    WPARAM wParam,
    LPARAM lParam);

Parámetros

[in] wParam

[in] lParam

Valor devuelto

Comentarios

CMFCDesktopAlertWnd::OnDraw

virtual void OnDraw(CDC* pDC);

Parámetros

[in] pDC

Comentarios

CMFCDesktopAlertWnd::ProcessCommand

BOOL ProcessCommand(HWND hwnd);

Parámetros

[in] hwnd

Valor devuelto

Comentarios

CMFCDesktopAlertWnd::SetAnimationSpeed

Establece la velocidad de animación nueva.

void SetAnimationSpeed(UINT nSpeed);

Parámetros

nSpeed
[in] Especifica la velocidad de animación nueva, en milisegundos.

Comentarios

Llame a este método para establecer la velocidad de animación de la ventana de alertas. La velocidad de animación predeterminada es de 30 milisegundos.

CMFCDesktopAlertWnd::SetAnimationType

Establece el tipo de animación.

void SetAnimationType(CMFCPopupMenu::ANIMATION_TYPE type);

Parámetros

type
[in] Especifica el tipo de animación.

Comentarios

Llame a este método para establecer el tipo de animación. Puede especificar uno de los siguientes valores:

  • NO_ANIMATION

  • UNFOLD

  • DIAPOSITIVA

  • ATENUAR

  • SYSTEM_DEFAULT_ANIMATION

CMFCDesktopAlertWnd::SetAutoCloseTime

Establece el tiempo de espera de cierre automático.

void SetAutoCloseTime(int nTime);

Parámetros

nTime
[in] El tiempo, en milisegundos, que transcurre antes de que se cierre automáticamente la ventana de alertas.

Comentarios

La ventana de alertas se cierra automáticamente después del tiempo especificado si el usuario no interactúa con la ventana.

CMFCDesktopAlertWnd::SetSmallCaption

Cambia entre subtítulos de tamaño pequeño y normal.

void SetSmallCaption(BOOL bSmallCaption = TRUE);

Parámetros

bSmallCaption
[in] Es TRUE para especificar que la ventana de alertas muestra un subtítulo pequeño; de lo contrario, es FALSE para especificar que la ventana de alertas muestra un subtítulo de tamaño normal.

Comentarios

Llame a este método para mostrar el subtítulo de tamaño pequeño o normal. De manera predeterminada, el subtítulo pequeño es de 7 píxeles de alto. Puede obtener el tamaño del subtítulo normal llamando a la función GetSystemMetrics(SM_CYCAPTION) de la API de Windows.

CMFCDesktopAlertWnd::SetTransparency

Establece el nivel de transparencia de la ventana emergente.

void SetTransparency(BYTE nTransparency);

Parámetros

nTransparency
[in] Especifica el nivel de transparencia. Este valor debe estar comprendido entre 0 y 255, ambos incluidos. Cuanto mayor sea el valor, más opaca será la ventana.

Comentarios

Llame a esta función para establecer el nivel de transparencia de la ventana emergente.

CMFCDesktopAlertWnd::GetDialogSize

virtual CSize GetDialogSize();

Valor devuelto

Comentarios

Consulte también

Gráfico de jerarquías
Clases
CMFCDesktopAlertWndInfo (clase)
CMFCDesktopAlertDialog (clase)
CWnd (clase)