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:
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 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
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
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für