次の方法で共有


CAxDialogImpl クラス

このクラスは、ActiveX コントロールをホストするダイアログ ボックス (モーダルまたはモードレス) を実装します。

重要

このクラスとそのメンバーは、Windows ランタイムで実行するアプリケーションで使用することはできません。

構文

template <class T, class TBase = CWindow>
class ATL_NO_VTABLE CAxDialogImpl : public CDialogImplBaseT<TBase>

パラメーター

T
CAxDialogImpl から派生したクラス。

TBase
CDialogImplBaseT の基本ウィンドウ クラス。

メンバー

パブリック メソッド

名前 説明
CAxDialogImpl::AdviseSinkMap オブジェクトのシンク マップ イベント マップのすべてのエントリをアドバイスするか、アドバイス解除するには、このメソッドを呼び出します。
CAxDialogImpl::Create モードレス ダイアログ ボックスを作成するには、このメソッドを呼び出します。
CAxDialogImpl::DestroyWindow モードレス ダイアログ ボックスを破棄するには、このメソッドを呼び出します。
CAxDialogImpl::DoModal モーダル ダイアログ ボックスを作成するには、このメソッドを呼び出します。
CAxDialogImpl::EndDialog モーダル ダイアログ ボックスを破棄するには、このメソッドを呼び出します。
CAxDialogImpl::GetDialogProc DialogProc コールバック関数を指すポインターを取得するには、このメソッドを呼び出します。
CAxDialogImpl::GetIDD ダイアログ テンプレート リソース ID を取得するには、このメソッドを呼び出します
CAxDialogImpl::IsDialogMessage メッセージがこのダイアログ ボックスを対象としているかどうかを判断し、対象としている場合にメッセージを処理するには、このメソッドを呼び出します。

プロテクト データ メンバー

名前 説明
CAxDialogImpl::m_bModal デバッグ ビルドにのみ存在する変数。ダイアログ ボックスがモーダルの場合は true に設定されます。

解説

CAxDialogImpl を使用すると、モーダルまたはモードレス ダイアログ ボックスを作成できます。 CAxDialogImpl により、既定のメッセージ マップを使用し、該当するハンドラーにメッセージを送信するダイアログ ボックス プロシージャが提供されます。

CAxDialogImplCDialogImplBaseT から派生し、これは TBase (既定では、CWindow) と CMessageMap から派生します。

クラスでは、ダイアログ テンプレート リソース ID を指定する IDD メンバーを定義する必要があります。 たとえば、[クラスの追加] ダイアログ ボックスを使用して ATL ダイアログ オブジェクトを追加すると、クラスに次の行が自動的に追加されます。

enum { IDD = IDD_MYDLG };

ここで、MyDialog は、ATL ダイアログ ウィザードで入力した [短い名前] です。

詳細については、「ダイアログ ボックスの実装」を参照してください。

CAxDialogImpl を使用して作成されたモーダル ダイアログ ボックスの ActiveX コントロールでは、アクセラレータ キーはサポートされないことに注意してください。 CAxDialogImpl を使用して作成されたダイアログ ボックスでアクセラレータ キーをサポートするには、モードレス ダイアログ ボックスを作成し、独自のメッセージ ループを使用して、アクセラレータ キーを処理するためにキューからメッセージを取得した後、CAxDialogImpl::IsDialogMessage を使用します。

CAxDialogImpl の詳細については、ATL コントロール コンテインメントに関する FAQ を参照してください。

継承階層

CMessageMap

TBase

CWindowImplRoot

CDialogImplBaseT

CAxDialogImpl

要件

ヘッダー: atlwin.h

CAxDialogImpl::AdviseSinkMap

オブジェクトのシンク マップ イベント マップのすべてのエントリをアドバイスするか、アドバイス解除するには、このメソッドを呼び出します。

HRESULT AdviseSinkMap(bool bAdvise);

パラメーター

bAdvise
すべてのシンク エントリがアドバイスされる場合は true、すべてのエントリがアドバイス解除される場合は false に設定されます。

戻り値

成功した場合は S_OK、失敗した場合はエラー HRESULT を返します。

CAxDialogImpl::Create

モードレス ダイアログ ボックスを作成するには、このメソッドを呼び出します。

HWND Create(HWND hWndParent, LPARAM dwInitParam = NULL);
HWND Create(HWND hWndParent, RECT&, LPARAM dwInitParam = NULL);

パラメーター

hWndParent
[in] オーナー ウィンドウへのハンドル。

dwInitParam
[入力] WM_INITDIALOG メッセージの lParam パラメーターに、ダイアログ ボックスに渡す値を指定します。

RECT&
このパラメーターは使用されません。 このパラメーターは、CComControl によって渡されます。

戻り値

新しく作成されたダイアログ ボックスへのハンドル。

解説

このダイアログ ボックスは、CAxDialogImpl オブジェクトに自動的にアタッチされます。 モーダル ダイアログ ボックスを作成するには、DoModal を呼び出します。

2 番目のオーバーライドは、ダイアログ ボックスを CComControlで使用できるようにするためだけに用意されています。

CAxDialogImpl::DestroyWindow

モードレス ダイアログ ボックスを破棄するには、このメソッドを呼び出します。

BOOL DestroyWindow();

戻り値

ウィンドウが正常に破棄された場合は TRUE、それ以外の場合は FALSE。

解説

モーダル ダイアログ ボックスを破棄するために DestroyWindow を呼び出さないでください。 代わりに、EndDialog を呼び出します。

CAxDialogImpl::DoModal

モーダル ダイアログ ボックスを作成するには、このメソッドを呼び出します。

INT_PTR DoModal(
    HWND hWndParent = ::GetActiveWindow(),
    LPARAM dwInitParam = NULL);

パラメーター

hWndParent
[in] オーナー ウィンドウへのハンドル。 既定値は、GetActiveWindow Win32 関数の戻り値です。

dwInitParam
[入力] WM_INITDIALOG メッセージの lParam パラメーターに、ダイアログ ボックスに渡す値を指定します。

戻り値

成功した場合は、EndDialog への呼び出しで指定された nRetCode パラメーターの値。それ以外の場合は -1。

解説

このダイアログ ボックスは、CAxDialogImpl オブジェクトに自動的にアタッチされます。

モードレス ダイアログ ボックスを作成するには、Create を呼び出します。

CAxDialogImpl::EndDialog

モーダル ダイアログ ボックスを破棄するには、このメソッドを呼び出します。

BOOL EndDialog(int nRetCode);

パラメーター

nRetCode
[入力] DoModal によって返される値。

戻り値

ダイアログ ボックスが破棄される場合は TRUE。それ以外の場合は FALSE。

解説

EndDialog は、ダイアログ ボックス プロシージャを使用して呼び出す必要があります。 ダイアログ ボックスが破棄された後、Windows は、ダイアログ ボックスを作成した DoModal の戻り値として nRetCode の値を使用します。

Note

モードレス ダイアログ ボックスを破棄するために EndDialog を呼び出さないでください。 代わりに、DestroyWindow を呼び出します。

CAxDialogImpl::GetDialogProc

DialogProc コールバック関数を指すポインターを取得するには、このメソッドを呼び出します。

virtual DLGPROC GetDialogProc();

戻り値

DialogProc コールバック関数を指すポインターを返します。

解説

DialogProc 関数は、アプリケーション定義のコールバック関数です。

CAxDialogImpl::GetIDD

ダイアログ テンプレート リソース ID を取得するには、このメソッドを呼び出します。

int GetIDD();

戻り値

ダイアログ テンプレート リソース ID を返します。

CAxDialogImpl::IsDialogMessage

メッセージがこのダイアログ ボックスを対象としているかどうかを判断し、対象としている場合にメッセージを処理するには、このメソッドを呼び出します。

BOOL IsDialogMessage(LPMSG pMsg);

パラメーター

pMsg
チェックするメッセージが含まれている MSG 構造体を指すポインター。

戻り値

メッセージが処理された場合は TRUE、それ以外の場合は FALSE を返します。

解説

このメソッドは、メッセージ ループ内から呼び出すことを目的としています。

CAxDialogImpl::m_bModal

デバッグ ビルドにのみ存在する変数。ダイアログ ボックスがモーダルの場合は true に設定されます。

bool m_bModal;

関連項目

CDialogImpl クラス
クラスの概要