描述:
RT
1)问题应该相当于如何在ATL中弹出对话框。
2)ATL 编写的WORD插件如何调试啊,把调试关联EXE设为WORD.exe好象也调不进我的DLL呢。
解决方案1:
第二个问题
先确定一下你的addin是否已经加载了,如果加载了一般是可以调试的
1) 回答你第一个问题
ATL中弹出对话框。
要想在ATL中弹出对话框,对话款必须继承ATL窗口类。
下列 ATL 类旨在实现和操作窗口:
CWindow 允许将窗口句柄附加到 CWindow 对象。然后调用 CWindow 方法操作窗口。
CWindowImpl 允许实现新窗口并使用消息映射处理消息。可以基于新 Windows 类创建窗口、为现有类创建超类或为现有窗口创建子类。
CDialogImpl 允许实现有模式或无模式对话框并使用消息映射处理消息。
CContainedWindowT 是一个预生成的类,它实现消息映射包含在另一个类中的窗口。使用 CContainedWindowT 使您能够集中在一个类中处理消息。
CAxDialogImpl 允许实现承载 ActiveX 控件的对话框(有模式或无模式)。
CSimpleDialog 允许实现具有基本功能的对话框(有模式或无模式)。
CAxWindow 允许实现承载 ActiveX 控件的窗口。
CAxWindow2T 允许实现承载授权的 ActiveX 控件的窗口。
除特定窗口类外,ATL 还提供几个旨在使 ATL 窗口对象的实现更容易的类。下面是这些类:
CWndClassInfo 管理新窗口类的信息。
CWinTraits 和 CWinTraitsOR 提供一种简单的方法来标准化 ATL 窗口对象的特性。
下面为具体实例:
class CAddDataDialogEn :
public CAxDialogImpl<CAddDataDialogEn>
{
public:
enum { IDD = IDD_ADDDATADIALOGEN };
BEGIN_MSG_MAP(CAddDataDialogEn)
MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
COMMAND_ID_HANDLER(IDOK, OnOK)
COMMAND_ID_HANDLER(IDCANCEL, OnCancel)
END_MSG_MAP()
};
http://support.microsoft.com/kb/183758/en-us

