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:
Leiten Sie eine Klasse von
CMFCDesktopAlertDialog
ab.Erstellen Einer untergeordneten Dialogfeldvorlage in den Ressourcen.
Rufen Sie CMFCDesktopAlertWnd::Create mit der Ressourcen-ID der Dialogfeldvorlage und einem Zeiger auf die Laufzeitklasseninformationen der abgeleiteten Klasse auf.
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
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