OfficeControl编程
* 设定Ole对象的属性:
OlePropertyGet(propname)
OlePropertySet(propname,value) 其中value是任何可以转换为Variant型的值
* 调用Ole对象的方法:
OleProcedure(OleProcName,[val,...])
OleFunction(OleFuncName,[val,...])
其中val是任何可以转换为Variant型的值可以通过OleFunction(OleFuncName,[val,...])父对象返回其子对象,句法是:子对象名=父对象名. OleFunction(OleFuncName,val)。而且可以对此方法组合从父对象返回其下层对象的对象。
例如:痕迹保留
OfficeControl->ActiveDocument.OlePropertyGet("Application").OlePropertySet("UserName",FUserName.c_str());
OfficeControl->ActiveDocument.OlePropertySet("TrackRevisions",true);
OfficeControl->ActiveDocument.OlePropertySet("PrintRevisions",true);
OfficeControl->ActiveDocument.OlePropertySet("ShowRevisions",true);
问题:
1.什么时候用OlePropertyGet、OlePropertySet、OleProcedure、OleFunction呢?
2.如何传递参数呢?
3.要插入批注
Selection.Collapse Direction:=wdCollapseEnd
ActiveDocument.Comments.Add Range:=Selection.Range, _
Text:="review this"
如何用上面的四个属性、方法写呢
[解决办法]
第一个问题:
OlePropertyGet: 获取属性
OlePropertySet: 设置属性
OleProcedure: 运行一个过程(无返回值)
OleFunction: 运行一个函数(有返回值)
第二个问题:
参数用逗号隔开,放在过程名或函数名的后面
第三个问题,大概的代码(未测试):
OfficeControl->ActiveDocument.OleProcedure("Collapse", wdCollapseEnd);
OfficeControl->ActiveDocument.OleFunction("Add",
OfficeControl->ActiveDocument.OlePropertyGet("Range"),
"review this");
你先看看OfficeControl有没有Selection的属性?如果有,上面的代码需要修改。