CMFCDesktopAlertWnd クラス
CMFCDesktopAlertWnd クラスは、画面に表示されてユーザーにイベントについて通知するモードレス ダイアログ ボックスの機能を実装します。
class CMFCDesktopAlertWnd : public CWnd
メンバー
パブリック メソッド
名前 |
説明 |
---|---|
デスクトップ通知ウィンドウを作成し、初期化します。 |
|
アニメーション速度を返します。 |
|
アニメーションの種類を返します。 |
|
自動終了のタイムアウトを返します。 |
|
キャプションの高さを返します。 |
|
|
|
画面上のデスクトップ通知ウィンドウの最後の有効な位置を返します。 |
|
透明度レベルを返します。 |
|
デスクトップ通知ウィンドウに小さいキャプションが表示されているかどうかを判断します。 |
|
|
|
ユーザーがデスクトップ通知メニュー上のリンク ボタンをクリックしたときに、フレームワークによって呼び出されます。 |
|
このメンバー関数は、ユーザーがメニューの項目を選択したとき、子コントロールから通知メッセージが送られたとき、またはアクセラレータのキーストロークが変換されたときに、フレームワークによって呼び出されます (CWnd::OnCommand をオーバーライドします)。 |
|
|
|
|
|
新しいアニメーション速度を設定します。 |
|
アニメーションの種類を設定します。 |
|
自動終了のタイムアウトを設定します。 |
|
小さいキャプションと標準のキャプションとを切り替えます。 |
|
透明度レベルを設定します。 |
解説
デスクトップ通知ウィンドウは、透明にすることも、アニメーション効果を使用することも、また、非表示にもできます (指定された遅延時間の経過後、またはユーザーが閉じるボタンをクリックして閉じたとき)。
デスクトップ通知ウィンドウには既定のダイアログ ボックスを含めることができ、そのダイアログ ボックスにはアイコン、メッセージ テキスト (ラベル)、およびリンクを含めることができます。または、デスクトップ通知ウィンドウで、アプリケーションのリソースからカスタム ダイアログ ボックスを含めることができます。
デスクトップ通知ウィンドウは次の手順で作成されます。まず、コンストラクターを呼び出して CMFCDesktopAlertWnd オブジェクトを構築します。次に、CMFCDesktopAlertWnd::Create メンバー関数を呼び出してウィンドウを作成し、それを CMFCDesktopAlertWnd オブジェクトに結び付けます。
CMFCDesktopAlertWnd オブジェクトは、デスクトップ通知ウィンドウのクライアント領域全体を占める専用の子ダイアログ ボックスを作成します。このダイアログ ボックスは、その上にあるすべてのコントロールを所有します。
ポップアップ ウィンドウにカスタム ダイアログ ボックスを表示するには、次の手順に従います。
CMFCDesktopAlertDialog の派生クラスを作成します。
リソースに子ダイアログ ボックスのテンプレートを作成します。
ダイアログ ボックスのテンプレートのリソース ID と、派生クラスのランタイム クラス情報へのポインターを使用して、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