Freigeben über


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.

Ausführliche Informationen finden Sie im Quellcode des Ordners VC\atlmfc\src\mfc der 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 der Beschriftung 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 der kleinen Beschriftung 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 Beschriftungen.
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 Beschriftung in klein, indem Sie CMFCDesktopAlertWnd::SetSmallCaption aufrufen. Die kleine Beschriftung 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 Beschriftung anzeigt, und die Zeit festlegen, die verstrichen ist, bevor das Benachrichtigungsfenster 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

  • GLEITEN

  • 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 der Beschriftung zurück.

virtual int GetCaptionHeight();

Rückgabewert

Die Höhe der Beschriftung in Pixel.

Hinweise

Diese Methode kann in einer abgeleiteten Klasse überschrieben werden. Die Standardimplementierung: Gibt den Wert für die Höhe der kleinen Beschriftung (7 Pixel) zurück, wenn das Popupfenster die kleine Beschriftung 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 über eine kleine Beschriftung oder eine Beschriftung in normaler Größe verfügt.

BOOL HasSmallCaption() const;

Rückgabewert

TRUE, wenn das Popupfenster mit einer kleinen Beschriftung angezeigt wird; FALSE, wenn das Popupfenster mit einer Beschriftung in normaler Größe angezeigt wird.

Hinweise

Verwenden Sie diese Methode, um zu bestimmen, ob das Popupfenster eine kleine Beschriftung oder eine Beschriftung in normaler Größe aufweist. Standardmäßig ist die kleine Beschriftung 7 Pixel hoch. Sie können die Höhe der Beschriftung in normaler Größe 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

  • GLEITEN

  • 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 beschriftungen in kleiner und normaler Größe.

void SetSmallCaption(BOOL bSmallCaption = TRUE);

Parameter

bSmallCaption
[in] TRUE, um anzugeben, dass das Warnungsfenster eine kleine Beschriftung anzeigt; andernfalls FALSE, um anzugeben, dass im Warnungsfenster eine Beschriftung in normaler Größe angezeigt wird.

Hinweise

Rufen Sie diese Methode auf, um die kleine oder normale Beschriftung anzuzeigen. Standardmäßig ist die kleine Beschriftung 7 Pixel hoch. Sie können die Größe der regulären Beschriftung 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

Weitere Informationen

Hierarchiediagramm
Klassen
CMFCDesktopAlertWndInfo-Klasse
CMFCDesktopAlertDialog-Klasse
CWnd-Klasse