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
создает специальное дочернее диалоговое окно, которое заполняет клиентская область окна оповещений рабочего стола. Диалоговое окно владеет всеми элементами управления, расположенными на нем.
Чтобы отобразить настраиваемое диалоговое окно во всплывающем окне, выполните следующие действия.
Создайте производный класс от класса
CMFCDesktopAlertDialog
.Создайте дочерний шаблон диалогового окна в ресурсах.
Вызов CMFCDesktopAlertWnd::Create с помощью идентификатора ресурса шаблона диалогового окна и указателя на сведения о классе среды выполнения производного класса.
Программа настраиваемого диалогового окна для обработки всех уведомлений, поступающих из размещенных элементов управления, или программы размещенных элементов управления для обработки этих уведомлений напрямую.
Используйте следующие функции для управления поведением окна оповещений рабочего стола:
Задайте тип анимации, вызвав CMFCDesktopAlertWnd::SetAnimationType. Допустимые параметры включают развертывание, слайд и угасание.
Задайте скорость кадра анимации путем вызова CMFCDesktopAlertWnd::SetAnimationSpeed.
Задайте уровень прозрачности, вызвав CMFCDesktopAlertWnd::SetTransparency.
Измените размер заголовка на небольшой, вызвав CMFCDesktopAlertWnd::SetSmallCaption. Небольшая подпись составляет 7 пикселей.
Пример
В следующем примере показано, как использовать различные методы в 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));
}
}
Иерархия наследования
Требования
Заголовок: 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