次の方法で共有


CMFCDesktopAlertWnd Class

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

詳細については、Visual Studio のインストールの VC\atlmfc\src\mfc フォルダーにあるソース コードを参照してください。

構文

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 透明度レベルを設定します。

解説

デスクトップアラートウィンドウは透明にしたり、アニメーション効果で表示したり、消えたりすることができます(指定した遅延の後、またはユーザーが閉じるボタンをクリックして閉じる)。

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

デスクトップ アラート ウィンドウは、2 つの手順で作成します。 まず、コンストラクターを呼び出して、 CMFCDesktopAlertWnd オブジェクトを構築します。 次に、 CMFCDesktopAlertWnd::Create メンバー関数を呼び出してウィンドウを作成し、 CMFCDesktopAlertWnd オブジェクトにアタッチします。

CMFCDesktopAlertWnd オブジェクトは、デスクトップアラートウィンドウのクライアント領域を埋める特別な子ダイアログ ボックスを作成します。 ダイアログは、その上に配置されているすべてのコントロールを所有します。

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

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

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

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

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

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

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

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

要件

Header: 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
[入力、出力]アラート ウィンドウの所有者を指定します。 その所有者は、デスクトップアラートウィンドウのすべての通知を受け取ります。 この値を NULL にすることはできません。

uiDlgResID
[in]アラート ウィンドウのリソース ID を指定します。

hMenu
[in]ユーザーがメニュー ボタンをクリックしたときに表示されるメニューを指定します。 NULL の場合、メニュー ボタンは表示されません。

ptPos
[in]画面座標を使用して、アラート ウィンドウを表示する最初の位置を指定します。 このパラメーターが (-1, -1) の場合、アラート ウィンドウが画面の右下隅に表示されます。

pRTIDlgBar
[in]アラート ウィンドウのクライアント領域をカバーするカスタム ダイアログ ボックス クラスのランタイム クラス情報。

params
[in]アラート ウィンドウの作成に使用するパラメーターを指定します。

戻り値

警告ウィンドウが正常に作成された場合は TRUE。それ以外の場合は FALSE。

解説

アラート ウィンドウを作成するには、このメソッドを呼び出します。 アラート ウィンドウのクライアント領域には、ユーザーに表示されるすべてのコントロールをホストする子ダイアログ ボックスが含まれています。

最初のメソッド オーバーロードは、アプリケーションのリソースから読み込まれる子ダイアログ ボックスを含むアラート ウィンドウを作成します。 最初のメソッド オーバーロードでは、カスタム ダイアログ ボックス クラスのランタイム クラス情報を指定することもできます。

2 番目のメソッド オーバーロードは、既定のコントロールを含むアラート ウィンドウを作成します。 表示するコントロールを指定するには、 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 ピクセル) を返すか、Windows API 関数から取得した値 GetSystemMetrics(SM_CYSMCAPTION)返します。

CMFCDesktopAlertWnd::GetLastPos

画面上のデスクトップアラートウィンドウの最後の位置を返します。

CPoint GetLastPos() const;

戻り値

画面座標内のポイント。

解説

このメソッドは、画面上のアラート ウィンドウの最後の有効な位置を返します。

CMFCDesktopAlertWnd::GetTransparency

透明度レベルを返します。

BYTE GetTransparency() const;

戻り値

0 ~ 255 の透明度レベル (両端を含む)。 値が大きいほど、ウィンドウは不透明になります。

解説

このメソッドを使用して、アラート ウィンドウの現在の透明度レベルを取得します。

CMFCDesktopAlertWnd::HasSmallCaption

デスクトップ アラート ウィンドウに小さいキャプションと通常サイズのキャプションのどちらを含めるかを決定します。

BOOL HasSmallCaption() const;

戻り値

ポップアップ ウィンドウが小さいキャプションで表示される場合は TRUE。ポップアップ ウィンドウが通常のサイズのキャプションと共に表示される場合は FALSE。

解説

このメソッドを使用して、ポップアップ ウィンドウに小さいキャプションと通常サイズのキャプションのどちらが含まれているかを確認します。 既定では、小さいキャプションの高さは 7 ピクセルです。 通常サイズのキャプションの高さを取得するには、Windows API 関数 GetSystemMetrics(SM_CYCAPTION)を呼び出します。

CMFCDesktopAlertWnd::OnBeforeShow

virtual BOOL OnBeforeShow(CPoint&);

パラメーター

[入力] CPoint&

戻り値

解説

CMFCDesktopAlertWnd::OnClickLinkButton

ユーザーがデスクトップ アラート メニューにあるリンク ボタンをクリックすると、フレームワークによって呼び出されます。

virtual BOOL OnClickLinkButton(UINT uiCmdID);

パラメーター

uiCmdID
[入力] このパラメーターは使用しません。

戻り値

常に FALSE です。

解説

ユーザーが警告ウィンドウのリンクをクリックしたときに通知を受け取る場合は、派生クラスでこのメソッドをオーバーライドします。

CMFCDesktopAlertWnd::OnCommand

virtual BOOL OnCommand(
    WPARAM wParam,
    LPARAM lParam);

パラメーター

[入力] wParam

[入力] lParam

戻り値

解説

CMFCDesktopAlertWnd::OnDraw

virtual void OnDraw(CDC* pDC);

パラメーター

[入力] pDC

解説

CMFCDesktopAlertWnd::P rocessCommand

BOOL ProcessCommand(HWND hwnd);

パラメーター

[入力] 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 ピクセルです。 Windows API 関数 GetSystemMetrics(SM_CYCAPTION)を呼び出すことで、通常のキャプションのサイズを取得できます。

CMFCDesktopAlertWnd::SetTransparency

ポップアップ ウィンドウの透明度レベルを設定します。

void SetTransparency(BYTE nTransparency);

パラメーター

nTransparency
[in]透明度レベルを指定します。 この値は、0 ~ 255 の範囲である必要があります。 値が大きいほど、ウィンドウは不透明になります。

解説

ポップアップ ウィンドウの透明度レベルを設定するには、この関数を呼び出します。

CMFCDesktopAlertWnd::GetDialogSize

virtual CSize GetDialogSize();

戻り値

解説

関連項目

階層図
クラス
CMFCDesktopAlertWndInfo クラス
CMFCDesktopAlertDialog クラス
CWnd クラス