Partilhar via


Classe CMFCDesktopAlertWnd

A classe CMFCDesktopAlertWnd implementa a funcionalidade de uma caixa de diálogo sem modo que aparece na tela para informar o usuário sobre um evento.

Para obter mais detalhes, confira o código-fonte localizado na pasta VC\atlmfc\src\mfc de sua instalação do Visual Studio.

Sintaxe

class CMFCDesktopAlertWnd : public CWnd

Membros

Métodos públicos

Nome Descrição
CMFCDesktopAlertWnd::Create Cria e inicializa a janela de alerta da área de trabalho.
CMFCDesktopAlertWnd::GetAnimationSpeed Retorna a velocidade da animação.
CMFCDesktopAlertWnd::GetAnimationType Retorna o tipo de animação.
CMFCDesktopAlertWnd::GetAutoCloseTime Retorna o tempo limite do fechamento automático.
CMFCDesktopAlertWnd::GetCaptionHeight Retorna a altura da legenda.
CMFCDesktopAlertWnd::GetDialogSize
CMFCDesktopAlertWnd::GetLastPos Retorna a última posição válida da janela de alerta da área de trabalho na tela.
CMFCDesktopAlertWnd::GetTransparency Retorna o nível de transparência.
CMFCDesktopAlertWnd::HasSmallCaption Determina se a janela de alerta da área de trabalho é exibida com a legenda pequena.
CMFCDesktopAlertWnd::OnBeforeShow
CMFCDesktopAlertWnd::OnClickLinkButton Chamado pela estrutura quando o usuário clica em um botão de link localizado no menu de alerta da área de trabalho.
CMFCDesktopAlertWnd::OnCommand A estrutura chama essa função membro quando o usuário seleciona um item em um menu, quando um controle filho envia uma mensagem de notificação ou quando um pressionamento de uma tecla de aceleração é traduzido. (Substitui CWnd::OnCommand.)
CMFCDesktopAlertWnd::OnDraw
CMFCDesktopAlertWnd::ProcessCommand
CMFCDesktopAlertWnd::SetAnimationSpeed Define a nova velocidade de animação.
CMFCDesktopAlertWnd::SetAnimationType Define o tipo de animação.
CMFCDesktopAlertWnd::SetAutoCloseTime Define o tempo limite do fechamento automático.
CMFCDesktopAlertWnd::SetSmallCaption Alterna entre legendas pequenas e normais.
CMFCDesktopAlertWnd::SetTransparency Define o nível de transparência.

Comentários

Uma janela de alerta da área de trabalho pode ser transparente, pode aparecer com efeitos de animação e pode desaparecer (após um atraso especificado ou quando o usuário a descarta clicando no botão fechar).

Uma janela de alerta da área de trabalho também pode conter uma caixa de diálogo padrão que, por sua vez, contém um ícone, um texto de mensagem (um rótulo) e um link. Como alternativa, uma janela de alerta da área de trabalho pode conter uma caixa de diálogo personalizada dos recursos do aplicativo.

Uma janela de alerta da área de trabalho é criada em duas etapas. Primeiro, chame o construtor para criar o objeto CMFCDesktopAlertWnd. Depois, chame a função membro CMFCDesktopAlertWnd::Create para criar a janela e anexá-la ao objeto CMFCDesktopAlertWnd.

O objeto CMFCDesktopAlertWnd cria uma caixa de diálogo filho especial que preenche a área de cliente da janela de alerta da área de trabalho. A caixa de diálogo possui todos os controles que estão posicionados nela.

Para exibir uma caixa de diálogo personalizada na janela pop-up, siga estas etapas:

  1. Deriva uma classe de CMFCDesktopAlertDialog.

  2. Crie um modelo de caixa de diálogo filho nos recursos.

  3. Chame CMFCDesktopAlertWnd::Create usando a ID do recurso do modelo de caixa de diálogo e um ponteiro para as informações de classe de runtime da classe derivada.

  4. Programe a caixa de diálogo personalizada para manipular todas as notificações provenientes dos controles hospedados ou programe os controles hospedados para lidar diretamente com essas notificações.

Use as seguintes funções para controlar o comportamento da janela de alerta da área de trabalho:

Exemplo

O exemplo a seguir ilustra como usar vários métodos na classe CMFCDesktopAlertWnd para configurar um objeto CMFCDesktopAlertWnd. O exemplo mostra como definir um tipo de animação, definir a transparência da janela pop-up, especificar que a janela de alerta exiba uma legenda pequena e definir o tempo decorrido antes que a janela de alerta seja fechada automaticamente. O exemplo também demonstra como criar e inicializar a janela de alerta da área de trabalho. Esse snippet de código faz parte do Exemplo de Demonstração de Alerta da Área de Trabalho.

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

Hierarquia de herança

CObject

CCmdTarget

CWnd

CMFCDesktopAlertWnd

Requisitos

Cabeçalho: afxDesktopAlertWnd.h

CMFCDesktopAlertWnd::Create

Cria e inicializa a janela de alerta da área de trabalho.

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 o proprietário da janela de alerta. Esse proprietário receberá todas as notificações para a janela de alerta da área de trabalho. Esse valor não pode ser NULL.

uiDlgResID
[in] Especifica a ID do recurso da janela de alerta.

hMenu
[in] Especifica o menu que é exibido quando o usuário clicar no botão de menu. Se NULL, o botão de menu não será exibido.

ptPos
[in] Especifica a posição inicial em que a janela de alerta é exibida, usando coordenadas de tela. Se esse parâmetro for (-1, -1), a janela de alerta será exibida no canto inferior direito da tela.

pRTIDlgBar
[in] Informações de classe de runtime para uma classe de caixa de diálogo personalizada que cobre a área do cliente da janela de alerta.

params
[in] Especifica parâmetros usados para criar uma janela de alerta.

Valor de retorno

TRUE se a janela de alerta foi criada com êxito; caso contrário, FALSE.

Comentários

Chame esse método para criar uma janela de alerta. A área do cliente da janela de alerta contém uma caixa de diálogo filho que hospeda todos os controles exibidos para o usuário.

A sobrecarga do primeiro método cria uma janela de alerta que contém uma caixa de diálogo filho que é carregada dos recursos do aplicativo. A sobrecarga do primeiro método também pode especificar informações de classe de runtime para uma classe de caixa de diálogo personalizada.

A sobrecarga do segundo método cria uma janela de alerta que contém controles padrão. Você pode especificar quais controles exibir modificando a classe CMFCDesktopAlertWndInfo.

CMFCDesktopAlertWnd::GetAnimationSpeed

Retorna a velocidade da animação.

UINT GetAnimationSpeed() const;

Valor de retorno

A velocidade de animação da janela de alerta, em milissegundos.

Comentários

A velocidade da animação descreve a rapidez com que a janela de alerta é aberta e fechada.

CMFCDesktopAlertWnd::GetAnimationType

Retorna o tipo de animação.

CMFCPopupMenu::ANIMATION_TYPE GetAnimationType();

Valor de retorno

Um dos seguintes tipos de animação:

  • NO_ANIMATION

  • UNFOLD

  • SLIDE

  • FADE

  • SYSTEM_DEFAULT_ANIMATION

CMFCDesktopAlertWnd::GetAutoCloseTime

Retorna o tempo limite do fechamento automático.

int GetAutoCloseTime() const;

Valor de retorno

O tempo, em milissegundos, após o qual a janela de alerta será fechada automaticamente.

Comentários

Use esse método para determinar quanto tempo deve passar antes que a janela de alerta seja fechada automaticamente.

CMFCDesktopAlertWnd::GetCaptionHeight

Retorna a altura da legenda.

virtual int GetCaptionHeight();

Valor de retorno

A altura em pixels da legenda.

Comentários

Este método pode ser substituído em uma classe derivada. A implementação padrão: retorna o valor de altura da legenda pequena (sete pixels) se a janela pop-up deve exibir a legenda pequena ou o valor obtido da função GetSystemMetrics(SM_CYSMCAPTION) da API do Windows.

CMFCDesktopAlertWnd::GetLastPos

Retorna a última posição da janela de alerta da área de trabalho na tela.

CPoint GetLastPos() const;

Valor de retorno

Um ponto, em coordenadas da tela.

Comentários

Esse método retorna a última posição válida da janela de alerta na tela.

CMFCDesktopAlertWnd::GetTransparency

Retorna o nível de transparência.

BYTE GetTransparency() const;

Valor de retorno

Um nível de transparência entre 0 e 255, inclusive. Quanto maior o valor, mais opaca a janela.

Comentários

Use esse método para recuperar o nível de transparência atual da janela de alerta.

CMFCDesktopAlertWnd::HasSmallCaption

Determina se a janela de alerta da área de trabalho tem uma legenda pequena ou de tamanho regular.

BOOL HasSmallCaption() const;

Valor de retorno

TRUE se a janela pop-up for exibida com uma legenda pequena; FALSE se a janela pop-up for exibida com uma legenda de tamanho regular.

Comentários

Use esse método para determinar se a janela pop-up tem uma legenda pequena ou uma legenda de tamanho regular. Por padrão, a legenda pequena tem sete pixels de altura. Você pode obter a altura da legenda de tamanho regular chamando a função GetSystemMetrics(SM_CYCAPTION) da API do Windows.

CMFCDesktopAlertWnd::OnBeforeShow

virtual BOOL OnBeforeShow(CPoint&);

Parâmetros

[em] CPoint&

Valor de retorno

Comentários

CMFCDesktopAlertWnd::OnClickLinkButton

Chamado pela estrutura quando o usuário clica em um botão de link localizado no menu de alerta da área de trabalho.

virtual BOOL OnClickLinkButton(UINT uiCmdID);

Parâmetros

uiCmdID
[in] Esse parâmetro não é usado.

Valor de retorno

Sempre FALSE.

Comentários

Substitua esse método em uma classe derivada se você quiser ser notificado quando um usuário clicar no link na janela de alerta.

CMFCDesktopAlertWnd::OnCommand

virtual BOOL OnCommand(
    WPARAM wParam,
    LPARAM lParam);

Parâmetros

[in] wParam

[in] lParam

Valor de retorno

Comentários

CMFCDesktopAlertWnd::OnDraw

virtual void OnDraw(CDC* pDC);

Parâmetros

[in] pDC

Comentários

CMFCDesktopAlertWnd::ProcessCommand

BOOL ProcessCommand(HWND hwnd);

Parâmetros

[in] hwnd

Valor de retorno

Comentários

CMFCDesktopAlertWnd::SetAnimationSpeed

Define a nova velocidade de animação.

void SetAnimationSpeed(UINT nSpeed);

Parâmetros

nSpeed
[in] Especifica a nova velocidade de animação, em milissegundos.

Comentários

Chame esse método para definir a velocidade da animação para a janela de alerta. A velocidade de animação padrão é de 30 milissegundos.

CMFCDesktopAlertWnd::SetAnimationType

Define o tipo de animação.

void SetAnimationType(CMFCPopupMenu::ANIMATION_TYPE type);

Parâmetros

tipo
[in] Especifica o tipo de animação.

Comentários

Chame esse método para definir o tipo de animação. É possível especificar um dos seguintes valores:

  • NO_ANIMATION

  • UNFOLD

  • SLIDE

  • FADE

  • SYSTEM_DEFAULT_ANIMATION

CMFCDesktopAlertWnd::SetAutoCloseTime

Define o tempo limite do fechamento automático.

void SetAutoCloseTime(int nTime);

Parâmetros

nTime
[in] O tempo, em milissegundos, que se passa antes que a janela de alerta seja fechada automaticamente.

Comentários

A janela de alerta será fechada automaticamente após o tempo especificado se o usuário não interagir com a janela.

CMFCDesktopAlertWnd::SetSmallCaption

Alterna entre legendas de tamanho pequeno e regular.

void SetSmallCaption(BOOL bSmallCaption = TRUE);

Parâmetros

bSmallCaption
[in] TRUE para especificar que a janela de alerta exiba uma legenda pequena; caso contrário, FALSE para especificar que a janela de alerta exiba uma legenda de tamanho regular.

Comentários

Chame esse método para exibir a legenda de tamanho pequeno ou regular. Por padrão, a legenda pequena tem sete pixels de altura. Você pode obter o tamanho da legenda regular chamando a função GetSystemMetrics(SM_CYCAPTION) da API do Windows.

CMFCDesktopAlertWnd::SetTransparency

Define o nível de transparência da janela pop-up.

void SetTransparency(BYTE nTransparency);

Parâmetros

nTransparency
[in] Especifica o nível de transparência. Esse valor deve estar entre 0 e 255, inclusive. Quanto maior o valor, mais opaca a janela.

Comentários

Chame essa função para definir o nível de transparência da janela pop-up.

CMFCDesktopAlertWnd::GetDialogSize

virtual CSize GetDialogSize();

Valor de retorno

Comentários

Confira também

Gráfico da hierarquia
Classes
Classe CMFCDesktopAlertWndInfo
Classe CMFCDesktopAlertDialog
Classe CWnd