ATL 对象向导属性页






1.80/5 (2投票s)
一个允许您创建 ATL 对象向导属性页的向导
这个自定义向导允许你创建一个 ATL 对象向导属性页,该属性页可以在你自定义对象创建期间被调用。
安装
要安装 ATL 对象向导属性页组件,你需要下载 ATL_pp_wizard_dll.zip 并将文件提取到 '???\Program Files\Microsoft Visual Studio\Common\MSDev98\Template\ATL'。然后你需要使用 regsvr32.exe 注册 atlsymwz.dll。ATL 对象向导属性页组件应该就可以从 ATL 对象向导中使用。
用法
要创建你自己的 ATL 对象向导属性页,请遵循这些简单的步骤
- 使用菜单中的“新建 ATL 对象”选项启动 ATL 对象向导。
- 从向导类别中选择 ATL 对象向导组件。
[注意:作为向导的最终测试,我使用原始向导作为起点重新创建了该向导]
- 像填写普通属性页对象一样填写名称和字符串页面。
该向导类似于在控件类别下找到的属性页向导,但属性页面已被删除,并添加了以下页面。
- 填写“对象向导设置”页面。
“类别”字段指示你希望你的组件归入哪个类别,而“标题”字段用于你希望给你的对象起的名字。还提供了另外两个字段,分别是“控制文件”和“图标文件”,这些字段指示你希望在选择你的对象时调用哪个 .ctl 文件,而图标文件用于在 ATL 对象向导中显示什么图标。如果这些文件尚不存在,则可以为它们创建存根。[注意:一些向导使用 control.ctl 作为控制文件,但提供不同的图标]
- 将你自己的控件添加到页面,并使用 ISymbolMap 接口创建你自己的符号。但是,在你开始创建你自己的自定义控件模板之前,我建议你也阅读参考资料,并调查当前在 '???\Program Files\Microsoft Visual Studio\Common\MSDev98\Template\ATL' 中可用的向导。
自动生成的代码
我提供了两种方法 EnableOK() 和 DisableOK(),用于启用和禁用属性表底部的“确定”按钮。如果你需要禁用“确定”按钮,并且只在用户填写了一些字段后才启用它,就像我使用这个向导所做的那样,那么我建议你在 Apply 方法中调用 DisableOK(),当 m_hWnd 为 NULL 时(请参阅 atlsymwiz.dll 的源代码。)
参考文献
- Template.txt 位于 '???\Program Files\Microsoft Visual Studio\Common\MSDev98\Template\ATL' - 这实际上是一个 HTML 文件,如果重命名或复制到 template.htm 会更容易
- Q179385 - 如何:将自定义 ATL 对象添加到 ATL 对象向导
- 自定义 ATL 对象向导的实际例子 - Glenn Carr - 应该可以在 Visual C++ Developers Journal 找到
- Q223439 - 如何:使用类包装器访问 ATL 中的 Windows 公共控件
Unicode
即使我已使用 unicode 格式测试了代码,但我认为这没有必要,因为我希望向导在 VC6 下运行,无论它们是在 NT 还是 Win9x 下运行。
STL
因为我使用了 STL 来为我提供额外的功能,例如 maps 和 lists 等,所以这段代码在“警告级别 4”下编译时会产生已知的警告。
历史
2000 年 5 月 1 日:更新了源代码,以便向导插入注册代码,正如 Erik Thompson 所建议的那样