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:
Derivar una clase de
CMFCDesktopAlertDialog
.Crear una plantilla de cuadro de diálogo secundario en los recursos.
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.
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:
Establezca el tipo de animación llamando a CMFCDesktopAlertWnd::SetAnimationType. Entre las opciones válidas se incluyen unfold, slide y fade.
Establezca la velocidad de los fotogramas de la animación llamando a CMFCDesktopAlertWnd::SetAnimationSpeed.
Establezca el nivel de transparencia llamando a CMFCDesktopAlertWnd::SetTransparency.
Cambie el tamaño del subtítulo a pequeño llamando a CMFCDesktopAlertWnd::SetSmallCaption. El subtítulo de tamaño pequeño es de 7 píxeles de alto.
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
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)