Udostępnij za pośrednictwem


Klasa CMFCDesktopAlertWnd

Klasa CMFCDesktopAlertWnd implementuje funkcjonalność okna dialogowego bez moderowania, które pojawia się na ekranie, aby poinformować użytkownika o zdarzeniu.

Aby uzyskać więcej informacji, zobacz kod źródłowy znajdujący się w folderze VC\atlmfc\src\mfc instalacji programu Visual Studio.

Składnia

class CMFCDesktopAlertWnd : public CWnd

Elementy członkowskie

Metody publiczne

Nazwa/nazwisko opis
CMFCDesktopAlertWnd::Create Tworzy i inicjuje okno alertu pulpitu.
CMFCDesktopAlertWnd::GetAnimationSpeed Zwraca szybkość animacji.
CMFCDesktopAlertWnd::GetAnimationType Zwraca typ animacji.
CMFCDesktopAlertWnd::GetAutoCloseTime Zwraca limit czasu automatycznego zamknięcia.
CMFCDesktopAlertWnd::GetCaptionHeight Zwraca wysokość podpisu.
CMFCDesktopAlertWnd::GetDialogSize
CMFCDesktopAlertWnd::GetLastPos Zwraca ostatnią prawidłową pozycję okna alertu pulpitu na ekranie.
CMFCDesktopAlertWnd::GetTransparency Zwraca poziom przezroczystości.
CMFCDesktopAlertWnd::HasSmallCaption Określa, czy okno alertu pulpitu jest wyświetlane z małym podpisem.
CMFCDesktopAlertWnd::OnBeforeShow
CMFCDesktopAlertWnd::OnClickLinkButton Wywoływana przez platformę, gdy użytkownik kliknie przycisk linku znajdujący się w menu alertów pulpitu.
CMFCDesktopAlertWnd::OnCommand Platforma wywołuje tę funkcję składową, gdy użytkownik wybierze element z menu, gdy kontrolka podrzędna wysyła komunikat powiadomienia lub gdy naciśnięcie akceleratora jest tłumaczone. (Przesłonięcia) CWnd::OnCommand).)
CMFCDesktopAlertWnd::OnDraw
CMFCDesktopAlertWnd::P rocessCommand
CMFCDesktopAlertWnd::SetAnimationSpeed Ustawia nową szybkość animacji.
CMFCDesktopAlertWnd::SetAnimationType Ustawia typ animacji.
CMFCDesktopAlertWnd::SetAutoCloseTime Ustawia limit czasu automatycznego zamykania.
CMFCDesktopAlertWnd::SetSmallCaption Przełącza się między małymi i normalnymi podpisami.
CMFCDesktopAlertWnd::SetTransparency Ustawia poziom przezroczystości.

Uwagi

Okno alertu pulpitu może być przezroczyste, może pojawić się z efektami animacji i może zniknąć (po określonym opóźnieniu lub po odrzuceniu go przez kliknięcie przycisku zamknięcia).

Okno alertu pulpitu może również zawierać domyślne okno dialogowe, które z kolei zawiera ikonę, tekst wiadomości (etykietę) i link. Alternatywnie okno alertu pulpitu może zawierać niestandardowe okno dialogowe z zasobów aplikacji.

W dwóch krokach utworzysz okno alertu pulpitu. Najpierw wywołaj konstruktor, aby skonstruować CMFCDesktopAlertWnd obiekt. Następnie wywołaj funkcję CMFCDesktopAlertWnd::Create member, aby utworzyć okno i dołączyć ją do CMFCDesktopAlertWnd obiektu.

Obiekt CMFCDesktopAlertWnd tworzy specjalne okno dialogowe podrzędne, które wypełnia obszar klienta okna alertu pulpitu. Okno dialogowe jest właścicielem wszystkich kontrolek umieszczonych na nim.

Aby wyświetlić niestandardowe okno dialogowe w oknie podręcznym, wykonaj następujące kroki:

  1. Tworzenie klasy z CMFCDesktopAlertDialogklasy .

  2. Utwórz szablon okna dialogowego podrzędnego w zasobach.

  3. Wywołaj metodę CMFCDesktopAlertWnd::Create przy użyciu identyfikatora zasobu szablonu okna dialogowego i wskaźnika do informacji o klasie środowiska uruchomieniowego klasy pochodnej.

  4. Zaprogramuj niestandardowe okno dialogowe do obsługi wszystkich powiadomień pochodzących z hostowanych kontrolek lub program hostowanych kontrolek w celu bezpośredniego obsługi tych powiadomień.

Użyj następujących funkcji, aby kontrolować zachowanie okna alertu pulpitu:

Przykład

W poniższym przykładzie pokazano, jak używać różnych metod w CMFCDesktopAlertWnd klasie do konfigurowania CMFCDesktopAlertWnd obiektu. W przykładzie pokazano, jak ustawić typ animacji, ustawić przezroczystość okna podręcznego, określić, że okno alertu wyświetla mały podpis i ustawić czas, który upłynął przed automatycznym zamknięciem okna alertu. W przykładzie pokazano również, jak utworzyć i zainicjować okno alertu pulpitu. Ten fragment kodu jest częścią przykładowego pokazu alertów pulpitu.

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

Hierarchia dziedziczenia

Obiekt CObject

CCmdTarget

CWnd

CMFCDesktopAlertWnd

Wymagania

Nagłówek: afxDesktopAlertWnd.h

CMFCDesktopAlertWnd::Create

Tworzy i inicjuje okno alertu pulpitu.

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

Parametry

pWndOwner
[in, out] Określa właściciela okna alertu. Ten właściciel otrzyma następnie wszystkie powiadomienia dotyczące okna alertu pulpitu. Ta wartość nie może mieć wartości NULL.

uiDlgResID
[in] Określa identyfikator zasobu okna alertu.

hMenu
[in] Określa menu wyświetlane po kliknięciu przycisku menu przez użytkownika. Jeśli wartość NULL, przycisk menu nie jest wyświetlany.

ptPos
[in] Określa początkową pozycję, w której jest wyświetlane okno alertu przy użyciu współrzędnych ekranu. Jeśli ten parametr to (-1, -1), w prawym dolnym rogu ekranu zostanie wyświetlone okno alertu.

pRTIDlgBar
[in] Informacje o klasie środowiska uruchomieniowego dla niestandardowej klasy okna dialogowego, która obejmuje obszar klienta okna alertu.

params
[in] Określa parametry używane do tworzenia okna alertu.

Wartość zwracana

WARTOŚĆ TRUE, jeśli okno alertu zostało pomyślnie utworzone; w przeciwnym razie, FAŁSZ.

Uwagi

Wywołaj tę metodę, aby utworzyć okno alertu. Obszar klienta okna alertu zawiera okno dialogowe podrzędne, które hostuje wszystkie kontrolki wyświetlane użytkownikowi.

Pierwsze przeciążenie metody tworzy okno alertu zawierające podrzędne okno dialogowe, które jest ładowane z zasobów aplikacji. Pierwsze przeciążenie metody może również określać informacje o klasie środowiska uruchomieniowego dla niestandardowej klasy okna dialogowego.

Drugie przeciążenie metody tworzy okno alertu zawierające domyślne kontrolki. Można określić, które kontrolki mają być wyświetlane, modyfikując klasę CMFCDesktopAlertWndInfo.

CMFCDesktopAlertWnd::GetAnimationSpeed

Zwraca szybkość animacji.

UINT GetAnimationSpeed() const;

Wartość zwracana

Szybkość animacji okna alertu w milisekundach.

Uwagi

Szybkość animacji opisuje, jak szybko zostanie otwarte i zamknięte okno alertu.

CMFCDesktopAlertWnd::GetAnimationType

Zwraca typ animacji.

CMFCPopupMenu::ANIMATION_TYPE GetAnimationType();

Wartość zwracana

Jeden z następujących typów animacji:

  • NO_ANIMATION

  • ROZKŁADAĆ

  • SLAJD

  • ZANIKANIE

  • SYSTEM_DEFAULT_ANIMATION

CMFCDesktopAlertWnd::GetAutoCloseTime

Zwraca limit czasu automatycznego zamknięcia.

int GetAutoCloseTime() const;

Wartość zwracana

Czas ( w milisekundach), po którym okno alertu zostanie automatycznie zamknięte.

Uwagi

Użyj tej metody, aby określić, ile czasu powinno upłynąć przed automatycznym zamknięciem okna alertu.

CMFCDesktopAlertWnd::GetCaptionHeight

Zwraca wysokość podpisu.

virtual int GetCaptionHeight();

Wartość zwracana

Wysokość w pikselach podpisu.

Uwagi

Tę metodę można zastąpić w klasie pochodnej. Domyślna implementacja: zwraca małą wartość wysokości podpisu (7 pikseli), jeśli okno podręczne powinno wyświetlić mały podpis lub wartość uzyskaną z funkcji GetSystemMetrics(SM_CYSMCAPTION)interfejsu API systemu Windows.

CMFCDesktopAlertWnd::GetLastPos

Zwraca ostatnią pozycję okna alertu pulpitu na ekranie.

CPoint GetLastPos() const;

Wartość zwracana

Punkt na współrzędnych ekranu.

Uwagi

Ta metoda zwraca ostatnią prawidłową pozycję okna alertu na ekranie.

CMFCDesktopAlertWnd::GetTransparency

Zwraca poziom przezroczystości.

BYTE GetTransparency() const;

Wartość zwracana

Poziom przejrzystości z zakresu od 0 do 255 włącznie. Im większa wartość, tym bardziej nieprzezroczyste okno.

Uwagi

Użyj tej metody, aby pobrać bieżący poziom przezroczystości okna alertu.

CMFCDesktopAlertWnd::HasSmallCaption

Określa, czy okno alertu pulpitu ma mały podpis, czy zwykły podpis.

BOOL HasSmallCaption() const;

Wartość zwracana

WARTOŚĆ TRUE, jeśli okno podręczne jest wyświetlane z małym podpisem; FAŁSZ, jeśli okno podręczne jest wyświetlane z podpisem o regularnym rozmiarze.

Uwagi

Użyj tej metody, aby określić, czy okno podręczne ma mały podpis, czy podpis o regularnym rozmiarze. Domyślnie mały podpis ma wysokość 7 pikseli. Wysokość podpisu zwykłego rozmiaru można uzyskać, wywołując funkcję GetSystemMetrics(SM_CYCAPTION)interfejsu API systemu Windows.

CMFCDesktopAlertWnd::OnBeforeShow

virtual BOOL OnBeforeShow(CPoint&);

Parametry

[in] CPoint &

Wartość zwracana

Uwagi

CMFCDesktopAlertWnd::OnClickLinkButton

Wywoływana przez platformę, gdy użytkownik kliknie przycisk linku znajdujący się w menu alertów pulpitu.

virtual BOOL OnClickLinkButton(UINT uiCmdID);

Parametry

uiCmdID
[in] Ten parametr nie jest używany.

Wartość zwracana

Zawsze FAŁSZ.

Uwagi

Zastąp tę metodę w klasie pochodnej, jeśli chcesz otrzymywać powiadomienia, gdy użytkownik kliknie link w oknie alertu.

CMFCDesktopAlertWnd::OnCommand

virtual BOOL OnCommand(
    WPARAM wParam,
    LPARAM lParam);

Parametry

[in] wParam

[in] lParam

Wartość zwracana

Uwagi

CMFCDesktopAlertWnd::OnDraw

virtual void OnDraw(CDC* pDC);

Parametry

[in] PDC

Uwagi

CMFCDesktopAlertWnd::P rocessCommand

BOOL ProcessCommand(HWND hwnd);

Parametry

[in] hwnd

Wartość zwracana

Uwagi

CMFCDesktopAlertWnd::SetAnimationSpeed

Ustawia nową szybkość animacji.

void SetAnimationSpeed(UINT nSpeed);

Parametry

nSpeed
[in] Określa nową szybkość animacji w milisekundach.

Uwagi

Wywołaj tę metodę, aby ustawić szybkość animacji dla okna alertu. Domyślna szybkość animacji to 30 milisekund.

CMFCDesktopAlertWnd::SetAnimationType

Ustawia typ animacji.

void SetAnimationType(CMFCPopupMenu::ANIMATION_TYPE type);

Parametry

type
[in] Określa typ animacji.

Uwagi

Wywołaj tę metodę, aby ustawić typ animacji. Można określić jedną z następujących wartości:

  • NO_ANIMATION

  • ROZKŁADAĆ

  • SLAJD

  • ZANIKANIE

  • SYSTEM_DEFAULT_ANIMATION

CMFCDesktopAlertWnd::SetAutoCloseTime

Ustawia limit czasu automatycznego zamykania.

void SetAutoCloseTime(int nTime);

Parametry

nTime
[in] Czas, w milisekundach, który upłynie przed automatycznym zamknięciem okna alertu.

Uwagi

Okno alertu zostanie automatycznie zamknięte po upływie określonego czasu, jeśli użytkownik nie wchodzi w interakcję z oknem.

CMFCDesktopAlertWnd::SetSmallCaption

Przełącza się między małymi i regularnymi podpisami.

void SetSmallCaption(BOOL bSmallCaption = TRUE);

Parametry

bSmallCaption
[in] WARTOŚĆ TRUE, aby określić, że w oknie alertu jest wyświetlany mały podpis; W przeciwnym razie wartość FALSE określa, że w oknie alertu jest wyświetlany podpis o regularnym rozmiarze.

Uwagi

Wywołaj tę metodę, aby wyświetlić podpis o małym lub regularnym rozmiarze. Domyślnie mały podpis ma wysokość 7 pikseli. Rozmiar zwykłego podpisu można uzyskać, wywołując funkcję GetSystemMetrics(SM_CYCAPTION)interfejsu API systemu Windows.

CMFCDesktopAlertWnd::SetTransparency

Ustawia poziom przezroczystości okna podręcznego.

void SetTransparency(BYTE nTransparency);

Parametry

nPrzezroczysć
[in] Określa poziom przezroczystości. Ta wartość musi należeć do przedziału od 0 do 255 włącznie. Im większa wartość, tym bardziej nieprzezroczyste okno.

Uwagi

Wywołaj tę funkcję, aby ustawić poziom przezroczystości okna podręcznego.

CMFCDesktopAlertWnd::GetDialogSize

virtual CSize GetDialogSize();

Wartość zwracana

Uwagi

Zobacz też

Wykres hierarchii
Klasy
Klasa CMFCDesktopAlertWndInfo
Klasa CMFCDesktopAlertDialog
Klasa CWnd