Condividi tramite


CMFCDesktopAlertWnd Class

La CMFCDesktopAlertWnd classe implementa la funzionalità di una finestra di dialogo senza modalità visualizzata sullo schermo per informare l'utente di un evento.

Per altri dettagli, vedere il codice sorgente che si trova nella cartella VC\atlmfc\src\mfc dell'installazione di Visual Studio.

Sintassi

class CMFCDesktopAlertWnd : public CWnd

Membri

Metodi pubblici

Nome Descrizione
CMFCDesktopAlertWnd::Create Crea e inizializza la finestra di avviso desktop.
CMFCDesktopAlertWnd::GetAnimationSpeed Restituisce la velocità di animazione.
CMFCDesktopAlertWnd::GetAnimationType Restituisce il tipo di animazione.
CMFCDesktopAlertWnd::GetAutoCloseTime Restituisce il timeout di chiusura automatica.
CMFCDesktopAlertWnd::GetCaptionHeight Restituisce l'altezza della didascalia.
CMFCDesktopAlertWnd::GetDialogSize
CMFCDesktopAlertWnd::GetLastPos Restituisce l'ultima posizione valida della finestra di avviso desktop sullo schermo.
CMFCDesktopAlertWnd::GetTransparency Restituisce il livello di trasparenza.
CMFCDesktopAlertWnd::HasSmallCaption Determina se la finestra di avviso desktop viene visualizzata con la didascalia piccola.
CMFCDesktopAlertWnd::OnBeforeShow
CMFCDesktopAlertWnd::OnClickLinkButton Chiamato dal framework quando l'utente fa clic su un pulsante di collegamento che si trova nel menu di avviso desktop.
CMFCDesktopAlertWnd::OnCommand Il framework chiama questa funzione membro quando l'utente seleziona una voce da un menu, quando un controllo figlio invia un messaggio di notifica o quando viene convertita una sequenza di tasti di scelta rapida. (sostituzioni )CWnd::OnCommand.)
CMFCDesktopAlertWnd::OnDraw
CMFCDesktopAlertWnd::P rocessCommand
CMFCDesktopAlertWnd::SetAnimationSpeed Imposta la nuova velocità di animazione.
CMFCDesktopAlertWnd::SetAnimationType Imposta il tipo di animazione.
CMFCDesktopAlertWnd::SetAutoCloseTime Imposta il timeout di chiusura automatica.
CMFCDesktopAlertWnd::SetSmallCaption Passa da didascalie piccole e normali.
CMFCDesktopAlertWnd::SetTransparency Imposta il livello di trasparenza.

Osservazioni:

Una finestra di avviso desktop può essere trasparente, può apparire con effetti di animazione e può scomparire (dopo un ritardo specificato o quando l'utente lo ignora facendo clic sul pulsante chiudi).

Una finestra di avviso desktop può contenere anche una finestra di dialogo predefinita che a sua volta contiene un'icona, un testo del messaggio (un'etichetta) e un collegamento. In alternativa, una finestra di avviso desktop può contenere una finestra di dialogo personalizzata dalle risorse dell'applicazione.

Si crea una finestra di avviso desktop in due passaggi. Prima di tutto, chiamare il costruttore per costruire l'oggetto CMFCDesktopAlertWnd . In secondo luogo, chiamare la funzione membro CMFCDesktopAlertWnd::Create per creare la finestra e collegarla all'oggetto CMFCDesktopAlertWnd .

L'oggetto CMFCDesktopAlertWnd crea una finestra di dialogo figlio speciale che riempie l'area client della finestra di avviso desktop. La finestra di dialogo è proprietaria di tutti i controlli posizionati su di esso.

Per visualizzare una finestra di dialogo personalizzata nella finestra popup, seguire questa procedura:

  1. Derivare una classe da CMFCDesktopAlertDialog.

  2. Creare un modello di finestra di dialogo figlio nelle risorse.

  3. Chiamare CMFCDesktopAlertWnd::Create usando l'ID risorsa del modello della finestra di dialogo e un puntatore alle informazioni sulla classe di runtime della classe derivata.

  4. Programmare la finestra di dialogo personalizzata per gestire tutte le notifiche provenienti dai controlli ospitati o programmare i controlli ospitati per gestire direttamente queste notifiche.

Usare le funzioni seguenti per controllare il comportamento della finestra di avviso desktop:

Esempio

Nell'esempio seguente viene illustrato come utilizzare vari metodi nella CMFCDesktopAlertWnd classe per configurare un CMFCDesktopAlertWnd oggetto . Nell'esempio viene illustrato come impostare un tipo di animazione, impostare la trasparenza della finestra popup, specificare che la finestra di avviso visualizza una piccola didascalia e impostare il tempo trascorso prima della chiusura automatica della finestra di avviso. L'esempio illustra anche come creare e inizializzare la finestra di avviso desktop. Questo frammento di codice fa parte dell'esempio demo di avviso desktop.

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

Gerarchia di ereditarietà

CObject

CCmdTarget

CWnd

CMFCDesktopAlertWnd

Requisiti

Intestazione: afxDesktopAlertWnd.h

CMFCDesktopAlertWnd::Create

Crea e inizializza la finestra di avviso desktop.

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

Parametri

pWndOwner
[in, out] Specifica il proprietario della finestra di avviso. Il proprietario riceverà quindi tutte le notifiche per la finestra di avviso desktop. Questo valore non può essere NULL.

uiDlgResID
[in] Specifica l'ID risorsa della finestra di avviso.

hMenu
[in] Specifica il menu visualizzato quando l'utente fa clic sul pulsante di menu. Se NULL, il pulsante di menu non viene visualizzato.

ptPos
[in] Specifica la posizione iniziale in cui viene visualizzata la finestra dell'avviso, utilizzando le coordinate dello schermo. Se questo parametro è (-1, -1), la finestra dell'avviso viene visualizzata nell'angolo in basso a destra dello schermo.

pRTIDlgBar
[in] Informazioni sulla classe di runtime per una classe di finestra di dialogo personalizzata che copre l'area client della finestra di avviso.

params
[in] Specifica i parametri utilizzati per creare una finestra di avviso.

Valore restituito

TRUE se la finestra di avviso è stata creata correttamente; in caso contrario, FALSE.

Osservazioni:

Chiamare questo metodo per creare una finestra di avviso. L'area client della finestra di avviso contiene una finestra di dialogo figlio che ospita tutti i controlli visualizzati dall'utente.

Il primo overload del metodo crea una finestra di avviso che contiene una finestra di dialogo figlio caricata dalle risorse dell'applicazione. Il primo overload del metodo può anche specificare informazioni sulla classe di runtime per una classe di finestra di dialogo personalizzata.

Il secondo overload del metodo crea una finestra di avviso che contiene controlli predefiniti. È possibile specificare i controlli da visualizzare modificando la classe CMFCDesktopAlertWndInfo.

CMFCDesktopAlertWnd::GetAnimationSpeed

Restituisce la velocità di animazione.

UINT GetAnimationSpeed() const;

Valore restituito

Velocità di animazione della finestra di avviso, espressa in millisecondi.

Osservazioni:

La velocità di animazione descrive la velocità di apertura e chiusura della finestra di avviso.

CMFCDesktopAlertWnd::GetAnimationType

Restituisce il tipo di animazione.

CMFCPopupMenu::ANIMATION_TYPE GetAnimationType();

Valore restituito

Uno dei tipi di animazione seguenti:

  • NO_ANIMATION

  • SPIEGARE

  • DIAPOSITIVA

  • SBIADIRE

  • SYSTEM_DEFAULT_ANIMATION

CMFCDesktopAlertWnd::GetAutoCloseTime

Restituisce il timeout di chiusura automatica.

int GetAutoCloseTime() const;

Valore restituito

Tempo, espresso in millisecondi, dopo il quale la finestra di avviso verrà chiusa automaticamente.

Osservazioni:

Utilizzare questo metodo per determinare quanto tempo deve trascorrere prima che la finestra di avviso venga chiusa automaticamente.

CMFCDesktopAlertWnd::GetCaptionHeight

Restituisce l'altezza della didascalia.

virtual int GetCaptionHeight();

Valore restituito

Altezza, in pixel, della didascalia.

Osservazioni:

Questo metodo può essere sottoposto a override in una classe derivata. L'implementazione predefinita: restituisce il valore di altezza della didascalia piccola (7 pixel) se la finestra popup deve visualizzare la didascalia piccola o il valore ottenuto dalla funzione GetSystemMetrics(SM_CYSMCAPTION)API di Windows .

CMFCDesktopAlertWnd::GetLastPos

Restituisce l'ultima posizione della finestra di avviso desktop sullo schermo.

CPoint GetLastPos() const;

Valore restituito

Punto, nelle coordinate dello schermo.

Osservazioni:

Questo metodo restituisce l'ultima posizione valida della finestra di avviso sullo schermo.

CMFCDesktopAlertWnd::GetTransparency

Restituisce il livello di trasparenza.

BYTE GetTransparency() const;

Valore restituito

Un livello di trasparenza compreso tra 0 e 255 inclusi. Maggiore è il valore, maggiore sarà l'opacità della finestra.

Osservazioni:

Utilizzare questo metodo per recuperare il livello di trasparenza corrente della finestra di avviso.

CMFCDesktopAlertWnd::HasSmallCaption

Determina se la finestra degli avvisi desktop ha una didascalia di piccole dimensioni o una didascalia di dimensioni regolari.

BOOL HasSmallCaption() const;

Valore restituito

TRUE se la finestra popup viene visualizzata con una didascalia piccola; FALSE se la finestra popup viene visualizzata con una didascalia di dimensioni normali.

Osservazioni:

Utilizzare questo metodo per determinare se la finestra popup ha una didascalia di piccole dimensioni o una didascalia di dimensioni regolari. Per impostazione predefinita, la didascalia piccola è alta 7 pixel. È possibile ottenere l'altezza della didascalia di dimensioni regolari chiamando la funzione GetSystemMetrics(SM_CYCAPTION)API di Windows .

CMFCDesktopAlertWnd::OnBeforeShow

virtual BOOL OnBeforeShow(CPoint&);

Parametri

[in] CPoint&

Valore restituito

Osservazioni:

CMFCDesktopAlertWnd::OnClickLinkButton

Chiamato dal framework quando l'utente fa clic su un pulsante di collegamento che si trova nel menu di avviso desktop.

virtual BOOL OnClickLinkButton(UINT uiCmdID);

Parametri

uiCmdID
[in] Questo parametro non viene usato.

Valore restituito

Sempre FALSE.

Osservazioni:

Eseguire l'override di questo metodo in una classe derivata se si desidera ricevere una notifica quando un utente fa clic sul collegamento nella finestra di avviso.

CMFCDesktopAlertWnd::OnCommand

virtual BOOL OnCommand(
    WPARAM wParam,
    LPARAM lParam);

Parametri

[in] wParam

[in] lParam

Valore restituito

Osservazioni:

CMFCDesktopAlertWnd::OnDraw

virtual void OnDraw(CDC* pDC);

Parametri

[in] pDC

Osservazioni:

CMFCDesktopAlertWnd::P rocessCommand

BOOL ProcessCommand(HWND hwnd);

Parametri

[in] hwnd

Valore restituito

Osservazioni:

CMFCDesktopAlertWnd::SetAnimationSpeed

Imposta la nuova velocità di animazione.

void SetAnimationSpeed(UINT nSpeed);

Parametri

nSpeed
[in] Specifica la nuova velocità di animazione, espressa in millisecondi.

Osservazioni:

Chiama questo metodo per impostare la velocità di animazione per la finestra di avviso. La velocità di animazione predefinita è di 30 millisecondi.

CMFCDesktopAlertWnd::SetAnimationType

Imposta il tipo di animazione.

void SetAnimationType(CMFCPopupMenu::ANIMATION_TYPE type);

Parametri

type
[in] Specifica il tipo di animazione.

Osservazioni:

Chiamare questo metodo per impostare il tipo di animazione. È possibile specificare uno dei seguenti valori:

  • NO_ANIMATION

  • SPIEGARE

  • DIAPOSITIVA

  • SBIADIRE

  • SYSTEM_DEFAULT_ANIMATION

CMFCDesktopAlertWnd::SetAutoCloseTime

Imposta il timeout di chiusura automatica.

void SetAutoCloseTime(int nTime);

Parametri

nTime
[in] Tempo, in millisecondi, trascorso prima della chiusura automatica della finestra di avviso.

Osservazioni:

La finestra di avviso viene chiusa automaticamente dopo l'ora specificata se l'utente non interagisce con la finestra.

CMFCDesktopAlertWnd::SetSmallCaption

Passa da didascalie di piccole e normali dimensioni.

void SetSmallCaption(BOOL bSmallCaption = TRUE);

Parametri

bSmallCaption
[in] TRUE per specificare che nella finestra dell'avviso viene visualizzata una didascalia piccola; in caso contrario, FALSE per specificare che nella finestra dell'avviso viene visualizzata una didascalia di dimensioni regolari.

Osservazioni:

Chiamare questo metodo per visualizzare la didascalia di piccole o normali dimensioni. Per impostazione predefinita, la didascalia piccola è alta 7 pixel. È possibile ottenere le dimensioni della didascalia regolare chiamando la funzione GetSystemMetrics(SM_CYCAPTION)API di Windows .

CMFCDesktopAlertWnd::SetTransparency

Imposta il livello di trasparenza della finestra popup.

void SetTransparency(BYTE nTransparency);

Parametri

nTransparency
[in] Specifica il livello di trasparenza. Questo valore deve essere compreso tra 0 e 255 inclusi. Maggiore è il valore, maggiore sarà l'opacità della finestra.

Osservazioni:

Chiamare questa funzione per impostare il livello di trasparenza della finestra popup.

CMFCDesktopAlertWnd::GetDialogSize

virtual CSize GetDialogSize();

Valore restituito

Osservazioni:

Vedi anche

Grafico della gerarchia
Classi
Classe CMFCDesktopAlertWndInfo
Classe CMFCDesktopAlertDialog
Classe CWnd