CMFCDesktopAlertWnd Class
CMFCDesktopAlertWnd
クラスは、イベントについてユーザーに通知するために画面に表示されるモードレス ダイアログ ボックスの機能を実装します。
詳細については、Visual Studio のインストールの VC\atlmfc\src\mfc フォルダーにあるソース コードを参照してください。
構文
class CMFCDesktopAlertWnd : public CWnd
メンバー
パブリック メソッド
解説
デスクトップアラートウィンドウは透明にしたり、アニメーション効果で表示したり、消えたりすることができます(指定した遅延の後、またはユーザーが閉じるボタンをクリックして閉じる)。
デスクトップ アラート ウィンドウには、アイコン、メッセージ テキスト (ラベル)、リンクを含む既定のダイアログを含めることもできます。 または、デスクトップ アラート ウィンドウに、アプリケーションのリソースからのカスタム ダイアログを含めることもできます。
デスクトップ アラート ウィンドウは、2 つの手順で作成します。 まず、コンストラクターを呼び出して、 CMFCDesktopAlertWnd
オブジェクトを構築します。 次に、 CMFCDesktopAlertWnd::Create メンバー関数を呼び出してウィンドウを作成し、 CMFCDesktopAlertWnd
オブジェクトにアタッチします。
CMFCDesktopAlertWnd
オブジェクトは、デスクトップアラートウィンドウのクライアント領域を埋める特別な子ダイアログ ボックスを作成します。 ダイアログは、その上に配置されているすべてのコントロールを所有します。
ポップアップ ウィンドウにカスタム ダイアログ ボックスを表示するには、次の手順に従います。
CMFCDesktopAlertDialog
の派生クラスを作成します。リソースに子ダイアログ ボックス テンプレートを作成します。
ダイアログ ボックス テンプレートのリソース ID と派生クラスのランタイム クラス情報へのポインターを使用して、 CMFCDesktopAlertWnd::Create を呼び出します。
ホストされているコントロールから送信されるすべての通知を処理するようにカスタム ダイアログ ボックスをプログラムするか、ホストされているコントロールをプログラムしてこれらの通知を直接処理します。
デスクトップ アラート ウィンドウの動作を制御するには、次の関数を使用します。
アニメーションの種類を設定するには、 CMFCDesktopAlertWnd::SetAnimationType を呼び出します。 有効なオプションには、展開、スライド、フェードなどがあります。
アニメーション フレームの速度を設定するには、 CMFCDesktopAlertWnd::SetAnimationSpeed を呼び出します。
透明度レベルを設定するには、 CMFCDesktopAlertWnd::SetTransparency を呼び出します。
CMFCDesktopAlertWnd::SetSmallCaption を呼び出して、キャプションのサイズを小さく変更します。 小さいキャプションの高さは 7 ピクセルです。
例
次の例は、 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));
}
}
継承階層
要件
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 クラス