CMFCDesktopAlertWnd クラス

更新 : 2007 年 11 月

CMFCDesktopAlertWnd クラスは、画面に表示されてユーザーにイベントについて通知するモードレス ダイアログ ボックスの機能を実装します。

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::ProcessCommand

 

CMFCDesktopAlertWnd::SetAnimationSpeed

新しいアニメーション速度を設定します。

CMFCDesktopAlertWnd::SetAnimationType

アニメーションの種類を設定します。

CMFCDesktopAlertWnd::SetAutoCloseTime

自動終了のタイムアウトを設定します。

CMFCDesktopAlertWnd::SetSmallCaption

小さいキャプションと標準のキャプションとを切り替えます。

CMFCDesktopAlertWnd::SetTransparency

透明度レベルを設定します。

解説

デスクトップ通知ウィンドウは、透明にすることも、アニメーション効果を使用することも、また、非表示にもできます (指定された遅延時間の経過後、またはユーザーが閉じるボタンをクリックして閉じたとき)。

デスクトップ通知ウィンドウには既定のダイアログ ボックスを含めることができ、そのダイアログ ボックスにはアイコン、メッセージ テキスト (ラベル)、およびリンクを含めることができます。または、デスクトップ通知ウィンドウで、アプリケーションのリソースからカスタム ダイアログ ボックスを含めることができます。

デスクトップ通知ウィンドウは次の手順で作成されます。まず、コンストラクタを呼び出して CMFCDesktopAlertWnd オブジェクトを構築します。次に、CMFCDesktopAlertWnd::Create メンバ関数を呼び出してウィンドウを作成し、それを CMFCDesktopAlertWnd オブジェクトに結び付けます。

CMFCDesktopAlertWnd オブジェクトは、デスクトップ通知ウィンドウのクライアント領域全体を占める専用の子ダイアログ ボックスを作成します。このダイアログ ボックスは、その上にあるすべてのコントロールを所有します。

ポップアップ ウィンドウにカスタム ダイアログ ボックスを表示するには、次の手順に従います。

  1. CMFCDesktopAlertDialog の派生クラスを作成します。

  2. リソースに子ダイアログ ボックスのテンプレートを作成します。

  3. ダイアログ ボックスのテンプレートのリソース ID と、派生クラスのランタイム クラス情報へのポインタを使用して、CMFCDesktopAlertWnd::Create を呼び出します。

  4. ホストされているコントロールからのすべての通知を処理するカスタム ダイアログ ボックスをプログラムするか、ホストされているコントロールですべての通知を直接処理するようプログラムします。

デスクトップ通知ウィンドウの動作を制御するには、次の関数を使用します。

使用例

CMFCDesktopAlertWnd クラスのさまざまなメソッドを使用して CMFCDesktopAlertWnd オブジェクトを構成する方法を次の例に示します。この例では、アニメーションの種類の設定、ポップアップ ウィンドウの透明度の設定、通知ウィンドウで小さいキャプションを表示する指定、および通知ウィンドウが自動的に閉じられるまでの時間の設定方法を示します。また、デスクトップ通知ウィンドウを作成および初期化する方法も示します。このコード スニペットは、「DesktopAlertDemo サンプル : MFC デスクトップ通知アプリケーション」の一部です。

  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

必要条件

ヘッダー : afxDesktopAlertWnd.h

参照

概念

MFC 階層図

参照

CMFCDesktopAlertWndInfo クラス

CMFCDesktopAlertDialog クラス

CWnd クラス

その他の技術情報

クラス (MFC Feature Pack)