CMFCDesktopAlertWnd Class

Die CMFCDesktopAlertWnd Klasse implementiert die Funktionalität eines Dialogfelds ohne Modus, das auf dem Bildschirm angezeigt wird, um den Benutzer über ein Ereignis zu informieren.

Weitere Details finden Sie im Quellcode im Ordner VC\atlmfc\src\mfc Ihrer Visual Studio-Installation.

Syntax

class CMFCDesktopAlertWnd : public CWnd

Member

Öffentliche Methoden

Name Beschreibung
CMFCDesktopAlertWnd::Create Erstellt und initialisiert das Desktopbenachrichtigungsfenster.
CMFCDesktopAlertWnd::GetAnimationSpeed Gibt die Animationsgeschwindigkeit zurück.
CMFCDesktopAlertWnd::GetAnimationType Gibt den Animationstyp zurück.
CMFCDesktopAlertWnd::GetAutoCloseTime Gibt das Timeout für das automatische Schließen zurück.
CMFCDesktopAlertWnd::GetCaptionHeight Gibt die Höhe des Untertitel zurück.
CMFCDesktopAlertWnd::GetDialogSize
CMFCDesktopAlertWnd::GetLastPos Gibt die letzte gültige Position des Desktopbenachrichtigungsfensters auf dem Bildschirm zurück.
CMFCDesktopAlertWnd::GetTransparency Gibt die Transparenzstufe zurück.
CMFCDesktopAlertWnd::HasSmallCaption Bestimmt, ob das Desktopbenachrichtigungsfenster mit dem kleinen Untertitel angezeigt wird.
CMFCDesktopAlertWnd::OnBeforeShow
CMFCDesktopAlertWnd::OnClickLinkButton Wird vom Framework aufgerufen, wenn der Benutzer auf eine Linkschaltfläche klickt, die sich im Desktopbenachrichtigungsmenü befindet.
CMFCDesktopAlertWnd::OnCommand Das Framework ruft diese Memberfunktion auf, wenn der Benutzer ein Element aus einem Menü auswählt, wenn ein untergeordnetes Steuerelement eine Benachrichtigung sendet oder wenn eine Tastenkombination übersetzt wird. (Außerkraftsetzungen CWnd::OnCommand.)
CMFCDesktopAlertWnd::OnDraw
CMFCDesktopAlertWnd::P rocessCommand
CMFCDesktopAlertWnd::SetAnimationSpeed Legt die neue Animationsgeschwindigkeit fest.
CMFCDesktopAlertWnd::SetAnimationType Legt den Animationstyp fest.
CMFCDesktopAlertWnd::SetAutoCloseTime Legt den Timeout für das automatische Schließen fest.
CMFCDesktopAlertWnd::SetSmallCaption Wechselt zwischen kleinen und normalen Untertitel.
CMFCDesktopAlertWnd::SetTransparency Legt die Transparenzstufe fest.

Hinweise

Ein Desktopbenachrichtigungsfenster kann transparent sein, es kann mit Animationseffekten angezeigt werden und kann ausgeblendet werden (nach einer bestimmten Verzögerung oder wenn der Benutzer es durch Klicken auf die Schaltfläche "Schließen" schließt).

Ein Desktopbenachrichtigungsfenster kann auch ein Standarddialogfeld enthalten, das wiederum ein Symbol, einen Nachrichtentext (eine Beschriftung) und einen Link enthält. Alternativ kann ein Desktopbenachrichtigungsfenster ein benutzerdefiniertes Dialogfeld aus den Ressourcen der Anwendung enthalten.

Sie erstellen ein Desktopbenachrichtigungsfenster in zwei Schritten. Rufen Sie zuerst den Konstruktor auf, um das CMFCDesktopAlertWnd Objekt zu erstellen. Rufen Sie zweitens die CMFCDesktopAlertWnd::Create-Memberfunktion auf, um das Fenster zu erstellen und an das CMFCDesktopAlertWnd Objekt anzufügen.

Das CMFCDesktopAlertWnd Objekt erstellt ein spezielles untergeordnetes Dialogfeld, das den Clientbereich des Desktopbenachrichtigungsfensters ausfüllt. Das Dialogfeld besitzt alle Steuerelemente, die darauf positioniert sind.

Führen Sie die folgenden Schritte aus, um ein benutzerdefiniertes Dialogfeld im Popupfenster anzuzeigen:

  1. Leiten Sie eine Klasse von CMFCDesktopAlertDialog ab.

  2. Erstellen Einer untergeordneten Dialogfeldvorlage in den Ressourcen.

  3. Rufen Sie CMFCDesktopAlertWnd::Create mit der Ressourcen-ID der Dialogfeldvorlage und einem Zeiger auf die Laufzeitklasseninformationen der abgeleiteten Klasse auf.

  4. Programmieren Sie das benutzerdefinierte Dialogfeld, um alle Benachrichtigungen zu verarbeiten, die von den gehosteten Steuerelementen stammen, oder programmieren Sie die gehosteten Steuerelemente, um diese Benachrichtigungen direkt zu verarbeiten.

Verwenden Sie die folgenden Funktionen, um das Verhalten des Desktopbenachrichtigungsfensters zu steuern:

  • Legen Sie den Animationstyp fest, indem Sie CMFCDesktopAlertWnd::SetAnimationType aufrufen. Zu den gültigen Optionen gehören "Folie", "Einblenden" und "Einblenden".

  • Legen Sie die Geschwindigkeit des Animationsframes fest, indem Sie CMFCDesktopAlertWnd::SetAnimationSpeed aufrufen.

  • Legen Sie die Transparenzstufe fest, indem Sie CMFCDesktopAlertWnd::SetTransparency aufrufen.

  • Ändern Sie die Größe der Untertitel in klein, indem Sie CMFCDesktopAlertWnd::SetSmallCaption aufrufen. Die kleine Untertitel ist 7 Pixel hoch.

Beispiel

Im folgenden Beispiel wird veranschaulicht, wie verschiedene Methoden in der CMFCDesktopAlertWnd Klasse zum Konfigurieren eines CMFCDesktopAlertWnd Objekts verwendet werden. Das Beispiel zeigt, wie Sie einen Animationstyp festlegen, die Transparenz des Popupfensters festlegen, angeben, dass das Warnungsfenster eine kleine Untertitel anzeigt, und die Zeit festlegen, die verstrichen ist, bevor das Warnungsfenster automatisch geschlossen wird. Im Beispiel wird auch veranschaulicht, wie das Desktopbenachrichtigungsfenster erstellt und initialisiert wird. Dieser Codeausschnitt ist Teil des Desktop Alert Demo-Beispiels.

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

Vererbungshierarchie

CObject

CCmdTarget

CWnd

CMFCDesktopAlertWnd

Anforderungen

Header: afxDesktopAlertWnd.h

CMFCDesktopAlertWnd::Create

Erstellt und initialisiert das Desktopbenachrichtigungsfenster.

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

Parameter

pWndOwner
[in, out] Gibt den Besitzer des Warnungsfensters an. Dieser Besitzer empfängt dann alle Benachrichtigungen für das Desktopbenachrichtigungsfenster. Dieser Wert darf nicht NULL sein.

uiDlgResID
[in] Gibt die Ressourcen-ID des Warnungsfensters an.

Hmenu
[in] Gibt das Menü an, das angezeigt wird, wenn der Benutzer auf die Menüschaltfläche klickt. Wenn NULL, wird die Menüschaltfläche nicht angezeigt.

ptPos
[in] Gibt die Anfangsposition an, an der das Warnungsfenster mit Bildschirmkoordinaten angezeigt wird. Wenn dieser Parameter (-1, -1) lautet, wird das Warnungsfenster in der unteren rechten Ecke des Bildschirms angezeigt.

pRTIDlgBar
[in] Laufzeitklasseninformationen für eine benutzerdefinierte Dialogfeldklasse, die den Clientbereich des Warnungsfensters abdeckt.

params
[in] Gibt Parameter an, die zum Erstellen eines Warnungsfensters verwendet werden.

Rückgabewert

TRUE, wenn das Warnungsfenster erfolgreich erstellt wurde; andernfalls FALSE.

Hinweise

Rufen Sie diese Methode auf, um ein Warnungsfenster zu erstellen. Der Clientbereich des Warnungsfensters enthält ein untergeordnetes Dialogfeld, in dem alle Steuerelemente gehostet werden, die dem Benutzer angezeigt werden.

Die erste Methodenüberladung erstellt ein Warnungsfenster, das ein untergeordnetes Dialogfeld enthält, das aus den Ressourcen der Anwendung geladen wird. Die erste Methodenüberladung kann auch Laufzeitklasseninformationen für eine benutzerdefinierte Dialogfeldklasse angeben.

Die zweite Methodenüberladung erstellt ein Warnungsfenster, das Standardsteuerelemente enthält. Sie können angeben, welche Steuerelemente angezeigt werden sollen, indem Sie die CMFCDesktopAlertWndInfo-Klasse ändern.

CMFCDesktopAlertWnd::GetAnimationSpeed

Gibt die Animationsgeschwindigkeit zurück.

UINT GetAnimationSpeed() const;

Rückgabewert

Die Animationsgeschwindigkeit des Warnungsfensters in Millisekunden.

Hinweise

Die Animationsgeschwindigkeit beschreibt, wie schnell das Warnungsfenster geöffnet und geschlossen wird.

CMFCDesktopAlertWnd::GetAnimationType

Gibt den Animationstyp zurück.

CMFCPopupMenu::ANIMATION_TYPE GetAnimationType();

Rückgabewert

Einer der folgenden Animationstypen:

  • NO_ANIMATION

  • ENTFALTEN

  • FOLIE

  • VERBLASSEN

  • SYSTEM_DEFAULT_ANIMATION

CMFCDesktopAlertWnd::GetAutoCloseTime

Gibt das Timeout für das automatische Schließen zurück.

int GetAutoCloseTime() const;

Rückgabewert

Die Zeit in Millisekunden, nach der das Benachrichtigungsfenster automatisch geschlossen wird.

Hinweise

Verwenden Sie diese Methode, um zu bestimmen, wie viel Zeit verstrichen werden soll, bevor das Warnungsfenster automatisch geschlossen wird.

CMFCDesktopAlertWnd::GetCaptionHeight

Gibt die Höhe des Untertitel zurück.

virtual int GetCaptionHeight();

Rückgabewert

Die Höhe des Untertitel in Pixel.

Hinweise

Diese Methode kann in einer abgeleiteten Klasse überschrieben werden. Die Standardimplementierung: Gibt den kleinen Untertitel Höheswert (7 Pixel) zurück, wenn das Popupfenster die kleine Untertitel oder den Wert aus der Windows-API-Funktion GetSystemMetrics(SM_CYSMCAPTION)anzeigen soll.

CMFCDesktopAlertWnd::GetLastPos

Gibt die letzte Position des Desktopbenachrichtigungsfensters auf dem Bildschirm zurück.

CPoint GetLastPos() const;

Rückgabewert

Ein Punkt in Bildschirmkoordinaten.

Hinweise

Diese Methode gibt die letzte gültige Position des Warnungsfensters auf dem Bildschirm zurück.

CMFCDesktopAlertWnd::GetTransparency

Gibt die Transparenzstufe zurück.

BYTE GetTransparency() const;

Rückgabewert

Transparenzstufe zwischen 0 und 255 inklusive. Je größer der Wert ist, desto undurchsichtiger ist das Fenster.

Hinweise

Verwenden Sie diese Methode, um die aktuelle Transparenzstufe des Warnungsfensters abzurufen.

CMFCDesktopAlertWnd::HasSmallCaption

Bestimmt, ob das Desktopbenachrichtigungsfenster eine kleine Untertitel oder eine normale größe Untertitel hat.

BOOL HasSmallCaption() const;

Rückgabewert

TRUE, wenn das Popupfenster mit einem kleinen Untertitel angezeigt wird; FALSE, wenn das Popupfenster mit einer normalen Untertitel angezeigt wird.

Hinweise

Verwenden Sie diese Methode, um zu bestimmen, ob das Popupfenster eine kleine Untertitel oder eine normale größe Untertitel aufweist. Standardmäßig ist die kleine Untertitel 7 Pixel hoch. Sie können die Höhe der regulären größe Untertitel abrufen, indem Sie die Windows-API-Funktion GetSystemMetrics(SM_CYCAPTION)aufrufen.

CMFCDesktopAlertWnd::OnBeforeShow

virtual BOOL OnBeforeShow(CPoint&);

Parameter

[in] CPoint&

Rückgabewert

Bemerkungen

CMFCDesktopAlertWnd::OnClickLinkButton

Wird vom Framework aufgerufen, wenn der Benutzer auf eine Linkschaltfläche klickt, die sich im Desktopbenachrichtigungsmenü befindet.

virtual BOOL OnClickLinkButton(UINT uiCmdID);

Parameter

uiCmdID
[in] Dieser Parameter wird nicht verwendet.

Rückgabewert

Immer FALSE

Hinweise

Überschreiben Sie diese Methode in einer abgeleiteten Klasse, wenn Sie benachrichtigt werden möchten, wenn ein Benutzer auf den Link im Warnungsfenster klickt.

CMFCDesktopAlertWnd::OnCommand

virtual BOOL OnCommand(
    WPARAM wParam,
    LPARAM lParam);

Parameter

[in] Wparam

[in] Lparam

Rückgabewert

Bemerkungen

CMFCDesktopAlertWnd::OnDraw

virtual void OnDraw(CDC* pDC);

Parameter

[in] Pdc

Hinweise

CMFCDesktopAlertWnd::P rocessCommand

BOOL ProcessCommand(HWND hwnd);

Parameter

[in] Hwnd

Rückgabewert

Bemerkungen

CMFCDesktopAlertWnd::SetAnimationSpeed

Legt die neue Animationsgeschwindigkeit fest.

void SetAnimationSpeed(UINT nSpeed);

Parameter

nSpeed
[in] Gibt die neue Animationsgeschwindigkeit in Millisekunden an.

Hinweise

Rufen Sie diese Methode auf, um die Animationsgeschwindigkeit für das Warnungsfenster festzulegen. Die Standardanimationsgeschwindigkeit beträgt 30 Millisekunden.

CMFCDesktopAlertWnd::SetAnimationType

Legt den Animationstyp fest.

void SetAnimationType(CMFCPopupMenu::ANIMATION_TYPE type);

Parameter

type
[in] Gibt den Animationstyp an.

Hinweise

Rufen Sie diese Methode auf, um den Animationstyp festzulegen. Geben Sie einen der folgenden Werte an:

  • NO_ANIMATION

  • ENTFALTEN

  • FOLIE

  • VERBLASSEN

  • SYSTEM_DEFAULT_ANIMATION

CMFCDesktopAlertWnd::SetAutoCloseTime

Legt den Timeout für das automatische Schließen fest.

void SetAutoCloseTime(int nTime);

Parameter

nTime
[in] Die Zeit in Millisekunden, die verstrichen ist, bevor das Warnungsfenster automatisch geschlossen wird.

Hinweise

Das Warnungsfenster wird nach dem angegebenen Zeitpunkt automatisch geschlossen, wenn der Benutzer nicht mit dem Fenster interagiert.

CMFCDesktopAlertWnd::SetSmallCaption

Wechselt zwischen kleinen und regulären Untertitel.

void SetSmallCaption(BOOL bSmallCaption = TRUE);

Parameter

bSmallCaption
[in] TRUE, um anzugeben, dass das Warnungsfenster eine kleine Untertitel anzeigt; andernfalls FALSE, um anzugeben, dass das Warnungsfenster eine normale Größe Untertitel anzeigt.

Hinweise

Rufen Sie diese Methode auf, um die kleine oder normale größe Untertitel anzuzeigen. Standardmäßig ist die kleine Untertitel 7 Pixel hoch. Sie können die Größe der regulären Untertitel abrufen, indem Sie die Windows-API-Funktion GetSystemMetrics(SM_CYCAPTION)aufrufen.

CMFCDesktopAlertWnd::SetTransparency

Legt die Transparenzstufe des Popupfensters fest.

void SetTransparency(BYTE nTransparency);

Parameter

nTransparency
[in] Gibt die Transparenzstufe an. Dieser Wert muss zwischen 0 und 255 (einschließlich) liegen. Je größer der Wert ist, desto undurchsichtiger ist das Fenster.

Hinweise

Rufen Sie diese Funktion auf, um die Transparenzstufe des Popupfensters festzulegen.

CMFCDesktopAlertWnd::GetDialogSize

virtual CSize GetDialogSize();

Rückgabewert

Bemerkungen

Siehe auch

Hierarchiediagramm
Klassen
CMFCDesktopAlertWndInfo-Klasse
CMFCDesktopAlertDialog-Klasse
CWnd-Klasse