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
により、既定のメッセージ マップを使用し、該当するハンドラーにメッセージを送信するダイアログ ボックス プロシージャが提供されます。
CAxDialogImpl
は CDialogImplBaseT
から派生し、これは TBase (既定では、CWindow
) と CMessageMap
から派生します。
クラスでは、ダイアログ テンプレート リソース ID を指定する IDD メンバーを定義する必要があります。 たとえば、[クラスの追加] ダイアログ ボックスを使用して ATL ダイアログ オブジェクトを追加すると、クラスに次の行が自動的に追加されます。
enum { IDD = IDD_MYDLG };
ここで、MyDialog
は、ATL ダイアログ ウィザードで入力した [短い名前] です。
詳細については、「ダイアログ ボックスの実装」を参照してください。
CAxDialogImpl
を使用して作成されたモーダル ダイアログ ボックスの ActiveX コントロールでは、アクセラレータ キーはサポートされないことに注意してください。 CAxDialogImpl
を使用して作成されたダイアログ ボックスでアクセラレータ キーをサポートするには、モードレス ダイアログ ボックスを作成し、独自のメッセージ ループを使用して、アクセラレータ キーを処理するためにキューからメッセージを取得した後、CAxDialogImpl::IsDialogMessage を使用します。
CAxDialogImpl
の詳細については、ATL コントロール コンテインメントに関する FAQ を参照してください。
継承階層
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;