更新:2007 年 11 月
在使用 Visual Studio 为设备设计 ActiveX 控件时,必须添加一些额外的步骤。“资源编辑器”要求控件必须在台式计算机上注册,这样才能在设计时操纵它。此外,您不能在台式计算机上注册设备控件。以下步骤提供了另一种设计时体验。下列过程假定您已拥有 ActiveX 控件项目和宿主项目,并且要在对话框中承载 ActiveX 控件。
| .gif) 说明: | 
|---|
| 对于在以下说明中使用的某些 Visual Studio 用户界面元素,您的计算机可能会显示不同的名称或位置。这些元素取决于您使用的 Visual Studio 版本及设置。有关更多信息,请参见Visual Studio 设置。 | 
使用对话框编辑器添加 ActiveX 控件
- 在对话框编辑器中,打开宿主项目的对话框。 
- 将一个自定义控件从“工具箱”中拖动到该对话框。 
- 在对话框中调整自定义控件的位置和大小,以反映您希望 ActiveX 控件具有的显示样式。 
- 右击该自定义控件,然后单击“属性”。 
- 在“类”属性中,粘贴 ActiveX 控件的 GUID。请记住包括大括号“{…}”。 
- 在“解决方案资源管理器”中,右击项目 Project Name.RC2 文件,然后单击“查看代码”。 
- 在“在此处添加手动编辑的资源”部分,添加以下代码。自定义控件要求正确显示对话框 Init 部分。不使用实际对话框 Init 部分的内容。请记住用项目的名称替换 <项目名称>。 - IDD_<project name>_DIALOG DLGINIT BEGIN IDC_CUSTOM1, 0x376, 22, 0 0x0000, 0x0000, 0x0800, 0x0000, 0x094d, 0x0000, 0x043d, 0x0000, 0x0013, 0xcdcd, 0xcdcd, 0
- 生成和运行宿主项目。请记住在目标设备上部署和注册 ActiveX 控件。 
使用承载 ActiveX 控件的替代方法
- 通过在应用程序中的某个位置调用 AtlAxWinInit 来注册 AtlAxWin80 窗口类。 - ATL 应用程序在模块初始化代码中执行此操作。Win32 应用程序应在 WinMain 函数中调用该函数。对于 MFC 应用程序,请按照下列步骤操作: - 右击“解决方案资源管理器”中的项目节点,指向“添加”,然后单击“类”。 
- 单击“向 MFC 添加 ATL 支持”(在“智能设备”标题下)。 
- 将 AtlAxWinInit 调用添加到宿主应用程序类的 InitInstance 方法的顶部。 
 
- 在对话框资源(如 ATL 对话框或复合控件,或 MFC 对话框)中: - 从“工具箱”拖动一个自定义控件。 
- 将窗口类属性设置为“AtlAxWin80”。 
- 将标题设置为用大括号括起的 GUID,或设置为 progid。 
 
- 对于 MFC,请将 atl.lib 作为附加链接输入添加。 
- 对于 MFC,请将这些行添加到“部署”|“附加文件”选项。尽管动态链接库中已存在这些行,但对于 MFC 静态链接库而言,必须添加这些行。 - msvcr80.dll|$(BINDIR)\$(INSTRUCTIONSET)\|%CSIDL_PROGRAM_FILES%\$(ProjectName)|0 atl80.dll|$(BINDIR)\$(INSTRUCTIONSET)\|%CSIDL_PROGRAM_FILES%\$(ProjectName)|0 msvcr80d.dll|$(BINDIR)\$(INSTRUCTIONSET)\|%CSIDL_PROGRAM_FILES%\$(ProjectName)|0