Поделиться через


CMFCDesktopAlertWnd Class

Класс CMFCDesktopAlertWnd реализует функциональные возможности бессерверного диалогового окна, которое отображается на экране, чтобы сообщить пользователю о событии.

Дополнительные сведения см. в исходном коде, расположенном в папке VC\atlmfc\src\mfc установки Visual Studio.

Синтаксис

class CMFCDesktopAlertWnd : public CWnd

Участники

Открытые методы

Имя Описание
CMFCDesktopAlertWnd::Create Создает и инициализирует окно оповещений рабочего стола.
CMFCDesktopAlertWnd::GetAnimationSpeed Возвращает скорость анимации.
CMFCDesktopAlertWnd::GetAnimationType Возвращает тип анимации.
CMFCDesktopAlertWnd::GetAutoCloseTime Возвращает время ожидания автоматического закрытия.
CMFCDesktopAlertWnd::GetCaptionHeight Возвращает высоту подпись.
CMFCDesktopAlertWnd::GetDialogSize
CMFCDesktopAlertWnd::GetLastPos Возвращает последнее допустимое положение окна оповещений рабочего стола на экране.
CMFCDesktopAlertWnd::GetTransparency Возвращает уровень прозрачности.
CMFCDesktopAlertWnd::HasSmallCaption Определяет, отображается ли окно оповещений рабочего стола с небольшим подпись.
CMFCDesktopAlertWnd::OnBeforeShow
CMFCDesktopAlertWnd::OnClickLinkButton Вызывается платформой, когда пользователь нажимает кнопку ссылки, расположенную в меню оповещений рабочего стола.
CMFCDesktopAlertWnd::OnCommand Платформа вызывает эту функцию-член, когда пользователь выбирает элемент из меню, когда дочерний элемент управления отправляет уведомление или при переводе нажатия клавиш акселератора. (Переопределения CWnd::OnCommand.)
CMFCDesktopAlertWnd::OnDraw
CMFCDesktopAlertWnd::P rocessCommand
CMFCDesktopAlertWnd::SetAnimationSpeed Задает новую скорость анимации.
CMFCDesktopAlertWnd::SetAnimationType Задает тип анимации.
CMFCDesktopAlertWnd::SetAutoCloseTime Задает время ожидания автоматического закрытия.
CMFCDesktopAlertWnd::SetSmallCaption Переключается между небольшими и обычными подпись.
CMFCDesktopAlertWnd::SetTransparency Задает уровень прозрачности.

Замечания

Окно оповещений рабочего стола может быть прозрачным, оно может отображаться с эффектами анимации и может исчезнуть (после указанной задержки или при закрытии пользователя, нажав кнопку закрытия).

Окно оповещений рабочего стола также может содержать диалоговое окно по умолчанию, содержащее значок, текст сообщения (метка) и ссылку. Кроме того, окно оповещений рабочего стола может содержать пользовательское диалоговое окно из ресурсов приложения.

Окно оповещений рабочего стола создается двумя шагами. Сначала вызовите конструктор для создания CMFCDesktopAlertWnd объекта. Во-вторых, вызовите функцию-член CMFCDesktopAlertWnd::Create , чтобы создать окно и присоединить его к объекту CMFCDesktopAlertWnd .

Объект CMFCDesktopAlertWnd создает специальное дочернее диалоговое окно, которое заполняет клиентская область окна оповещений рабочего стола. Диалоговое окно владеет всеми элементами управления, расположенными на нем.

Чтобы отобразить настраиваемое диалоговое окно во всплывающем окне, выполните следующие действия.

  1. Создайте производный класс от класса CMFCDesktopAlertDialog.

  2. Создайте дочерний шаблон диалогового окна в ресурсах.

  3. Вызов CMFCDesktopAlertWnd::Create с помощью идентификатора ресурса шаблона диалогового окна и указателя на сведения о классе среды выполнения производного класса.

  4. Программа настраиваемого диалогового окна для обработки всех уведомлений, поступающих из размещенных элементов управления, или программы размещенных элементов управления для обработки этих уведомлений напрямую.

Используйте следующие функции для управления поведением окна оповещений рабочего стола:

Пример

В следующем примере показано, как использовать различные методы в CMFCDesktopAlertWnd классе для настройки CMFCDesktopAlertWnd объекта. В примере показано, как задать тип анимации, задать прозрачность всплывающего окна, указать, что в окне оповещения отображается небольшая подпись, и задать время, которое истекает до автоматического закрытия окна оповещения. В примере также показано, как создать и инициализировать окно оповещений рабочего стола. Этот фрагмент кода является частью примера демонстрации оповещений о рабочем столе.

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

Иерархия наследования

CObject

CCmdTarget

CWnd

CMFCDesktopAlertWnd

Requirements

Заголовок: afxDesktopAlertWnd.h

CMFCDesktopAlertWnd::Create

Создает и инициализирует окно оповещений рабочего стола.

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

Параметры

pWndOwner
[in, out] Указывает владельца окна генерации оповещений. Затем владелец получит все уведомления для окна оповещений рабочего стола. Это значение не может иметь значение NULL.

uiDlgResID
[in] Указывает идентификатор ресурса окна генерации оповещений.

hMenu
[in] Указывает меню, отображающееся, когда пользователь нажимает кнопку меню. Если значение NULL, кнопка меню не отображается.

ptPos
[in] Указывает начальную позицию, в которой отображается окно генерации оповещений, используя координаты экрана. Если этот параметр имеет значение (-1, -1), окно генерации оповещений отображается в правом нижнем углу экрана.

pRTIDlgBar
[in] Сведения о классе среды выполнения для пользовательского класса диалогового окна, охватывающего клиентскую область окна генерации оповещений.

params
[in] Указывает параметры, используемые для создания окна оповещения.

Возвращаемое значение

ЗНАЧЕНИЕ TRUE, если окно генерации оповещений было успешно создано; в противном случае — ЗНАЧЕНИЕ FALSE.

Замечания

Вызовите этот метод для создания окна генерации оповещений. Клиентская область окна генерации оповещений содержит дочернее диалоговое окно, в котором размещаются все элементы управления, отображаемые пользователю.

Первая перегрузка метода создает окно генерации оповещений, содержащее дочернее диалоговое окно, загруженное из ресурсов приложения. Первая перегрузка метода также может указывать сведения о классе среды выполнения для пользовательского класса диалогового окна.

Вторая перегрузка метода создает окно генерации оповещений, содержащее элементы управления по умолчанию. Вы можете указать, какие элементы управления будут отображаться, изменив класс CMFCDesktopAlertWndInfo.

CMFCDesktopAlertWnd::GetAnimationSpeed

Возвращает скорость анимации.

UINT GetAnimationSpeed() const;

Возвращаемое значение

Скорость анимации окна оповещения в миллисекундах.

Замечания

Скорость анимации описывает, как быстро открывается и закрывается окно оповещения.

CMFCDesktopAlertWnd::GetAnimationType

Возвращает тип анимации.

CMFCPopupMenu::ANIMATION_TYPE GetAnimationType();

Возвращаемое значение

Один из следующих типов анимации:

  • NO_ANIMATION

  • РАЗВОРАЧИВАТЬСЯ

  • СЛАЙД

  • ИСЧЕЗАЮТ

  • SYSTEM_DEFAULT_ANIMATION

CMFCDesktopAlertWnd::GetAutoCloseTime

Возвращает время ожидания автоматического закрытия.

int GetAutoCloseTime() const;

Возвращаемое значение

Время в миллисекундах, после которого окно генерации оповещений автоматически закрывается.

Замечания

Используйте этот метод, чтобы определить, сколько времени должно пройти до автоматического закрытия окна генерации оповещений.

CMFCDesktopAlertWnd::GetCaptionHeight

Возвращает высоту подпись.

virtual int GetCaptionHeight();

Возвращаемое значение

Высота в пикселях подпись.

Замечания

Этот метод можно переопределить в производном классе. Реализация по умолчанию: возвращает небольшое значение высоты подпись (7 пикселей), если всплывающее окно должно отображать небольшие подпись или значение, полученное из функции GetSystemMetrics(SM_CYSMCAPTION)API Windows.

CMFCDesktopAlertWnd::GetLastPos

Возвращает последнюю позицию окна оповещений рабочего стола на экране.

CPoint GetLastPos() const;

Возвращаемое значение

Точка в координатах экрана.

Замечания

Этот метод возвращает последнюю допустимую позицию окна генерации оповещений на экране.

CMFCDesktopAlertWnd::GetTransparency

Возвращает уровень прозрачности.

BYTE GetTransparency() const;

Возвращаемое значение

Уровень прозрачности от 0 до 255 включительно. Чем больше значение, тем более непрозрачным окном.

Замечания

Используйте этот метод для получения текущего уровня прозрачности окна генерации оповещений.

CMFCDesktopAlertWnd::HasSmallCaption

Определяет, имеет ли окно оповещений на рабочем столе небольшой подпись или обычный размер подпись.

BOOL HasSmallCaption() const;

Возвращаемое значение

ЗНАЧЕНИЕ TRUE, если всплывающее окно отображается с небольшим подпись; Значение FALSE, если всплывающее окно отображается с обычным размером подпись.

Замечания

Используйте этот метод, чтобы определить, имеет ли всплывающее окно небольшое подпись или обычный размер подпись. По умолчанию небольшой подпись имеет высоту 7 пикселей. Высоту регулярных подпись можно получить, вызвав функцию GetSystemMetrics(SM_CYCAPTION)API Windows.

CMFCDesktopAlertWnd::OnBeforeShow

virtual BOOL OnBeforeShow(CPoint&);

Параметры

[in] CPoint&

Возвращаемое значение

Замечания

CMFCDesktopAlertWnd::OnClickLinkButton

Вызывается платформой, когда пользователь нажимает кнопку ссылки, расположенную в меню оповещений рабочего стола.

virtual BOOL OnClickLinkButton(UINT uiCmdID);

Параметры

uiCmdID
[in] Этот параметр не используется.

Возвращаемое значение

Всегда FALSE.

Замечания

Переопределите этот метод в производном классе, если вы хотите получать уведомления, когда пользователь щелкает ссылку в окне оповещения.

CMFCDesktopAlertWnd::OnCommand

virtual BOOL OnCommand(
    WPARAM wParam,
    LPARAM lParam);

Параметры

[in] Wparam

[in] Lparam

Возвращаемое значение

Замечания

CMFCDesktopAlertWnd::OnDraw

virtual void OnDraw(CDC* pDC);

Параметры

[in] Pdc

Замечания

CMFCDesktopAlertWnd::P rocessCommand

BOOL ProcessCommand(HWND hwnd);

Параметры

[in] Hwnd

Возвращаемое значение

Замечания

CMFCDesktopAlertWnd::SetAnimationSpeed

Задает новую скорость анимации.

void SetAnimationSpeed(UINT nSpeed);

Параметры

nSpeed
[in] Задает новую скорость анимации в миллисекундах.

Замечания

Вызовите этот метод, чтобы задать скорость анимации для окна оповещения. Скорость анимации по умолчанию составляет 30 миллисекунда.

CMFCDesktopAlertWnd::SetAnimationType

Задает тип анимации.

void SetAnimationType(CMFCPopupMenu::ANIMATION_TYPE type);

Параметры

type
[in] Указывает тип анимации.

Замечания

Вызовите этот метод, чтобы задать тип анимации. Можно указать одно из следующих значений:

  • NO_ANIMATION

  • РАЗВОРАЧИВАТЬСЯ

  • СЛАЙД

  • ИСЧЕЗАЮТ

  • SYSTEM_DEFAULT_ANIMATION

CMFCDesktopAlertWnd::SetAutoCloseTime

Задает время ожидания автоматического закрытия.

void SetAutoCloseTime(int nTime);

Параметры

nTime
[in] Время в миллисекундах, которое истекает до автоматического закрытия окна генерации оповещений.

Замечания

Окно оповещения автоматически закрывается после указанного времени, если пользователь не взаимодействует с окном.

CMFCDesktopAlertWnd::SetSmallCaption

Переключается между небольшими и регулярными подпись.

void SetSmallCaption(BOOL bSmallCaption = TRUE);

Параметры

bSmallCaption
[in] Значение TRUE, чтобы указать, что в окне оповещения отображается небольшая подпись; в противном случае значение FALSE, чтобы указать, что в окне оповещения отображается обычный размер подпись.

Замечания

Вызовите этот метод, чтобы отобразить небольшие или регулярные подпись. По умолчанию небольшой подпись имеет высоту 7 пикселей. Размер регулярного подпись можно получить, вызвав функцию GetSystemMetrics(SM_CYCAPTION)API Windows.

CMFCDesktopAlertWnd::SetTransparency

Задает уровень прозрачности всплывающего окна.

void SetTransparency(BYTE nTransparency);

Параметры

nTransparency
[in] Указывает уровень прозрачности. Это значение должно быть от 0 до 255 включительно. Чем больше значение, тем более непрозрачным окном.

Замечания

Вызовите эту функцию, чтобы задать уровень прозрачности всплывающего окна.

CMFCDesktopAlertWnd::GetDialogSize

virtual CSize GetDialogSize();

Возвращаемое значение

Замечания

См. также

Диаграмма иерархии
Классы
Класс CMFCDesktopAlertWndInfo
Класс CMFCDesktopAlertDialog
Класс CWnd