创建自动化项目
使用IDE,启动叫"AutoProject"的新"MFC应用向导(exe)"项目.
在MFC应用向导的第一步中,选择"基于对话框"的应用类型,然后点击完成.
新项目信息``对话框显示,提示将创建的分类包括:
1,应用助手:AutoProject.h和AutoProject.cpp中的CAutoProjectApp
2,对话框:AutoProject.h和AutoProjectDlg.cpp中的CAutoProjectDlg
点击确定以创建项目.
1,在项目客户区中,点击"资源视图"标签.
2,双击"自动项目资源"以展开资源树.
3,在资源树中双击"对话",然后双击选择"资源"IDD_AUTOPROJECT_DIALOG"的对话框.
4,移除标签控件(IDC_STATIC)和取消按钮(IDCANCEL).
5,把确定按钮名改为"IDRUN",并将说明文字改为"运行".关闭AutoProject.rc``对话框设计表单.
6,点击视图菜单中的类向导(或按CTRL+W).
7,选择"消息映射"标签.
8,在对象ID列表框中选择IDRUN,在消息列表框中选择"BN_CLICKED".点击添加函数,接受函数名``"OnRun".点击确定关闭类向导.
注意:这一步会在叫AutoProjectDLG.h的头文件中添加"OnRun();"成员函数的声明.这一步还会在叫AutoProjectDLG.cpp的文件中添加叫CAutoProjectDlg::OnRun()的空框架处理消息函数.
9,点击视图菜单中的类向导(或按CTRL+W).
10,选择自动化标签.点击添加类,然后选择"从类型库中".浏览选择你想自动化应用的对象库(这里,选择Excel8.0``对象库;
11,默认位置为C:\ProgramFiles\办公\Office\Excel8.olb),然后点击打开.在确认类列表中选择所有类并点击确定.
注意:确认类对话框中的列表框包含了优秀类型库中所有IDispatch接口(毕竟它们是类).
在对话框的下半部分,你看叫Excel8.cpp的实现文件包含从ColeDispatchDriver()继承的类封装器,相应的声明头文件叫Excel8.h.
12,点击确定关闭MFC的类向导``对话框.
在加载并允许COM服务库的CAutoProjectApp::InitInstance()函数中添加以下代码:
cpp
BOOL CAutoProjectApp::InitInstance()
{
if(!AfxOleInit())
//你的新增内容在此
{
AfxMessageBox("Could not initialize COM dll");
return FALSE;
}
//你的扩建结束
AfxEnableControlContainer();
}
在AutoProject.cpp助手文件顶部的#include语句中添加以下一行:
cpp
#include <afxdisp.h>
在AutoProjectDlg.cpp助手文件顶部的包含语句后,添加excel8.h的包含语句:
cpp
#include "stdafx.h"
#include "excel8.h"
在CAutoProjectDlg::OnRun()中添加自动化代码,使其渲染如下:
cpp
void CAutoProjectDlg::OnRun()
{
_Application app;
//`应用`是`Excel8`的`_Application`对象
//启动`Excel`并取`应用`对象...
if(!app.CreateDispatch("Excel.Application"))
{
AfxMessageBox("Couldn't start Excel.");
}
else
{
//让`Excel`可见并显示一条消息
app.SetVisible(TRUE);
AfxMessageBox ("Excel is Running!");
}
}
构建并运行项目.
结果:当你在对话框中点击"运行"按钮时,启动优秀.激活Auto_Excel``对话框并关闭该消息框.当CAutoProjectDlg::OnRun()函数结束时,优秀会停止,因为应用已出域.
附加注释
一旦在项目中添加了类型库中的类(如上第9步所示),注意已在项目中添加了许多类.
在类视中,你可双击一个类查看该类的成员函数,然后双击该成员函数查看Excel8.cpp``实现文件中的该函数定义.
如果你想验证返回类型或要更改函数的实现,需要进入成员函数的定义.
每次更改函数定义时,记得更改Excel8.h文件中的声明.
操作时,确保更改正确的函数声明;有时,多个类的成员函数会有相同名,GetApplication()就是一例.
虽然上述步骤展示了如何自动化优秀,但你也可将同样的理念应来自动化其他应用助手.如下包含了办公97应用助手类型库的文件名:
| 应用 | 类型库 |
|---|---|
Access97 |
Msacc8.olb |
JetDatabase3.5 |
DAO350.dll |
Binder97 |
Msbdr8.olb |
Excel97 |
Excel8.olb |
Graph97 |
Graph8.olb |
Office97 |
Mso97.dll |
Outlook97 |
Msoutl97.olb |
PowerPoint97 |
Msppt8.olb |
Word97 |
Msword8.olb |
Access2000 |
Msacc9.olb |
JetDatabase3.51 |
DAO360.dll |
Binder2000 |
Msbdr9.olb |
Excel2000 |
Excel9.olb |
Graph2000 |
Graph9.olb |
Office2000 |
Mso9.dll |
Outlook2000 |
Msoutl9.olb |
PowerPoint2000 |
Msppt9.olb |
Word2000 |
Msword9.olb |
注意:这类库的默认位置为C:\ProgramFiles\办公\Office,Dao350.dll或Dao360.dll除外.Dao350.dlldll/Dao360.dll``默认位置为C:\ProgramFiles\CommonFiles\MicrosoftShared\Dao.