首页 > OOP语言 > VC++ > 正文

如何使用MFC和类型库创建自动化项目
2012-08-22 18:38:53   来源:www.bianceng.cn   评论:0 点击:

暂时无描述信息

摘要

本文详细介绍了如何自动化像Microsoft Office这样支持COM的应用程序。

更多信息

下面部分介绍了如何创建MFC项目。采用Microsoft Excel举例,你可以将前8个步骤用于 任何项目,修改9-15步用于不同的应用程序。

创建自动化项目

1. 在Microsoft Developer Studio中,创建"MFC AppWizard(exe) "项目,命名为"AutoProject."
2. 在第1步的MFC应用程序向导中,选择"Dialog Based"应用程序 类型并点"完成"

在创建的项目信息对话框中将显示创建的类:Application: CAutoProjectApp in AutoProject.h and AutoProject.cpp
Dialog: CAutoProjectDlg in AutoProject.h and AutoProjectDlg.cpp
点 OK 完成项目创建。

3. Visual Studio设计编辑区打开了对话框 "IDD_AUTOPROJECT_DIALOG" ,依照下面两步修改它。
4. 删除静态控件(IDC_STATIC)和Cancel按钮(IDCANCEL)
5. 将OK按钮改为"IDRUN",说明改为"Run." 关闭 AutoProject.rc对话框设计界面。
6. 点View菜单中的ClassWizard(或按CTRL+W)
7. 选择消息映射(Message Maps)标签,在对象ID列表框中选择IDRUN,在消息 列表框中选择"BN_CLICKED",点添加函数并命名为"OnRun",点OK关闭 ClassWizard

提示:此步骤在AutoProjectDLG.h中定义了"OnRun();"函数,并 在 AutoProjectDLG.cpp 中添加了消息处理函数CAutoProjectDlg::OnRun()。

8. 点View菜单中的ClassWizard(或按CTRL+W)
9. 选择Automation标签,点Add Class并选择"From a type library" 浏览并选择你希望自动化的对象库(例如,如果你自动化Excel 97, 则选择 Microsoft Excel 8.0 对象库,默认位于 C:\Program Files\Microsoft Office\Office\Excel8.olb).

如果你自动化Microsoft Excel 2000,选择位于 C:\Program Files\Microsoft Office\Office\Excel9.olb 的Microsoft Excel 9.0 对象库。

如果你自动化Microsoft Excel 2002和Microsoft Office Excel 2003 ,对 象库内含在Excel.exe中,Office 2002的Excel.exe 默认位于 C:\program Files\Microsoft Office\Office10\Excel.exe, Office 2003的Excel.exe 默认位于 C:\program Files\Microsoft Office\Office11\Excel.exe 。选择合适的对象库后,点Open,在类确认列 表中选择所有类,点OK。

提示:类确认对话框中的列表框里包含了Microsoft Excel 类型库中的所有 IDispatch接口(与类中一致)。在对话框下面可以看到命名为Excel8.cpp的执行文件,该文 件包含了从COleDispatchDriver派生的封装类,头文件是Excel8.h(对于Excel 2002和Excel 2003,文件名为Excel.cpp和Excel.h)

10. 点OK关闭MFC ClassWizard对话框
11. 在 CAutoProjectApp::InitInstance() 函数中添加如下代码,用于加载 COM支持库:BOOL CAutoProjectApp::InitInstance()
{
   if(!AfxOleInit()) // Your addition starts here
   {
      AfxMessageBox("Could not initialize COM dll");
      return FALSE;
   }   // End of your addition
   AfxEnableControlContainer();
   .
   .
   .
}
12. 在AutoProject.cpp顶部添加#include行#include <afxdisp.h>
13. 在AutoProjectDlg.cpp 顶部stdafx.h下添加对excel8.h的包含 #include "stdafx.h"
#include "excel8.h" // excel.h in the case of Excel 2002 and Excel 2003.
14. 在CAutoProjectDlg::OnRun()中添加如下所示的自动化代码void CAutoProjectDlg::OnRun()
{
   _Application app; // app 是 Excel _Application 对象
   // 启动 Excel 并得到应用程序对象
   if(!app.CreateDispatch("Excel.Application"))
   {
     AfxMessageBox("Couldn''t start Excel.");
   }
   else
   {
     //使 Excel 可视,然后显示消息
     app.SetVisible(TRUE);
     AfxMessageBox ("Excel is Running!");
   }
}
15. 编译并运行项目。运行结果:当你点击对话框中的Run按钮,Microsoft Excel将被调用。关闭消息框使Auto_Excel对话框激活。CAutoProjectDlg::OnRun()函数结束 ,application变量离开作用域,Microsoft Excel将退出。

相关热词搜索:

上一篇:几个Windows到Linux的代码移植问题
下一篇:COM逐步教程

分享到: 收藏