共用方式為


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::D estroyWindow 呼叫此方法以終結無模式對話方塊。
CAxDialogImpl::D oModal 呼叫此方法以建立強制響應對話方塊。
CAxDialogImpl::EndDialog 呼叫此方法以終結強制響應對話方塊。
CAxDialogImpl::GetDialogProc 呼叫此方法以取得回呼函式的 DialogProc 指標。
CAxDialogImpl::GetIDD 呼叫此方法以取得對話框範本資源標識碼
CAxDialogImpl::IsDialogMessage 呼叫這個方法,以判斷訊息是否適用於此對話方塊,如果是,請處理訊息。

受保護的資料成員

名稱 描述
CAxDialogImpl::m_bModal 只有偵錯組建中存在的變數,如果對話框為強制回應,則會設定為 true。

備註

CAxDialogImpl 可讓您建立強制回應或無模式對話框。 CAxDialogImpl 提供對話框程式,它會使用預設訊息對應將訊息導向適當的處理程式。

CAxDialogImpl 衍生自 CDialogImplBaseT,而後者又衍生自 TBase (預設 CWindow為 ) 和 CMessageMap

您的類別必須定義 IDD 成員,以指定對話框範本資源識別碼。 例如,使用 [新增類別 ] 對話框新增 ATL Dialog 物件時,會自動將下列這一行新增至您的類別:

enum { IDD = IDD_MYDLG };

其中 MyDialogATL對話框精靈中輸入的簡短名稱

如需詳細資訊,請參閱 實作對話方塊

請注意,使用 CAxDialogImpl 所建立模式對話方塊上的 ActiveX 控制件不支援快捷鍵。 若要在以 CAxDialogImpl建立的對話框上支援快捷鍵,請建立無模式對話框,並使用您自己的訊息迴圈,在從佇列取得訊息以處理快速鍵之後,使用 CAxDialogImpl::IsDialogMessage

如需 的詳細資訊 CAxDialogImpl,請參閱 ATL 控件內含專案常見問題

繼承階層架構

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
[in]指定要傳遞至WM_INITDIALOG訊息之 lParam 參數中的對話框的值。

RECT&
不使用這個參數。 此參數會由 CComControl傳入。

傳回值

新建立對話框的句柄。

備註

這個對話框會自動附加至 CAxDialogImpl 物件。 若要建立強制回應對話框,請呼叫 DoModal

只提供第二個覆寫,因此對話框可以搭配 CComControl 使用。

CAxDialogImpl::D estroyWindow

呼叫此方法以終結無模式對話方塊。

BOOL DestroyWindow();

傳回值

如果視窗成功終結,則為TRUE;否則為 FALSE。

備註

請勿呼叫 DestroyWindow 來終結強制響應對話方塊。 請改為呼叫 EndDialog

CAxDialogImpl::D oModal

呼叫此方法以建立強制響應對話方塊。

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

參數

hWndParent
[in]擁有者視窗的句柄。 預設值是 GetActiveWindow Win32 函式的傳回值。

dwInitParam
[in]指定要傳遞至WM_INITDIALOG訊息之 lParam 參數中的對話框的值。

傳回值

如果成功,則為呼叫 EndDialog 中指定的 nRetCode 參數值,否則為 -1。

備註

這個對話框會自動附加至 CAxDialogImpl 物件。

若要建立無模式對話框,請呼叫 [建立]。

CAxDialogImpl::EndDialog

呼叫此方法以終結強制響應對話方塊。

BOOL EndDialog(int nRetCode);

參數

nRetCode
[in]DoModal 要傳回的值。

傳回值

如果對話框已終結,則為TRUE;否則為 FALSE。

備註

EndDialog 必須透過對話框程式呼叫。 終結對話框之後,Windows 會使用 nRetCode 的值做為 的傳回值DoModal,以建立對話方塊。

注意

請勿呼叫 EndDialog 來終結無模式對話方塊。 請改為呼叫 DestroyWindow

CAxDialogImpl::GetDialogProc

呼叫此方法以取得回呼函式的 DialogProc 指標。

virtual DLGPROC GetDialogProc();

傳回值

傳回回回調函式的 DialogProc 指標。

備註

DialogProc 式是應用程式定義的回呼函式。

CAxDialogImpl::GetIDD

呼叫此方法以取得對話框範本資源標識碼。

int GetIDD();

傳回值

傳回對話框範本資源標識碼。

CAxDialogImpl::IsDialogMessage

呼叫這個方法,以判斷訊息是否適用於此對話方塊,如果是,請處理訊息。

BOOL IsDialogMessage(LPMSG pMsg);

參數

pMsg
MSG 結構的指標,其中包含要檢查的訊息。

傳回值

如果訊息已處理,則傳回 TRUE,否則傳回 FALSE。

備註

這個方法的目的是要從訊息迴圈內呼叫。

CAxDialogImpl::m_bModal

只有偵錯組建中存在的變數,如果對話框為強制回應,則會設定為 true。

bool m_bModal;

另請參閱

CDialogImpl 類別
類別概觀