分类: C/C++
2008-08-07 17:40:28
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 |
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将退出。 |