| 第三十二讲 深入PB的高级应用 PowerBuild嵌入OLE(一) | ||||
|
在下面的这两讲中,我们将谈谈PB的高级应用,也就是在PowerBuilder中如何使用OLE控件, OLE控件可以令PB的应用程序访问Windwos环境中其它应用程序。 我们前面所用的控件都是内制在PowerBuilder中的,它们出现在编辑器的工具框中,可以通过指向和单击操作将其放在窗体上。但Windows环境中的有些对象不是PB所独有的,未放在PB语言中,比如说Word文档,如何达到将WORD文档嵌入PB中呢 我们现在先介绍使用OLE的概念,再介绍将从PB编程环境中访问多个应用程序的方法。 下面,我们要通过一个实例,一起学习如何使用OLE技术在PowerBuider的窗口中嵌入Windows其它应用程序(比如Word编辑器)。 新建一个名为app_ole的应用程序对象。 新建一个名为“w_ole”窗体。 选择应用程序对象app_ole的Open事件,进行编程: open(w_ole) 在窗口w_ole中添加控件 添加三个CommandButton控件,分别命名为cb_import, cb_export, cb_exit, 添加1个组合框控件 添加5个单选按钮控件,实现这五个按钮相互排斥 添加一个复选按钮控件 选择工具栏中的OLE(OLE控件),选择通用的OLE控件 将新的OLE控件放入窗体并更改其属性 开始编程 选择“退出” 按钮的的Clicked事件,编写程序: close(parent) 选择“Word” 单选按钮的Clicked事件,编写程序: 定义一个Instance变量 string iv_ole_type="word" iv_ole_type="word" 选择“Excel” 单选按钮的Clicked事件,编写程序: iv_ole_type="excel" 选择“Pic” 单选按钮的Clicked事件,编写程序: iv_ole_type="pic" 选择“Txt” 单选按钮的Clicked事件,编写程序: iv_ole_type="txt" 选择“All” 单选按钮的Clicked事件,编写程序: iv_ole_type="all" 编写激活OLE控件内嵌入的应用程序。 激活一个OLE控件的方法有两种,一种为即席方式(inplace),就是指所激活的对象(例如Word编辑器)直接在OLE控件内被激活;一种为离席方式(offsite),就是指所激活的对象在OLE控件外被激活,使用这种方式可使用户得到被激活对象的更多功能; 选择OLE的DoubleClicked事件,编写程序 omactivatetype act_type if cbx_1.checked then act_type=offsite! else act_type=inplace! end if wf_activate(act_type) 定义一个窗口函数, wf_activate;无返回值,并定义一个omactivatetype类型的参数:at_Type;单击OK按钮,编写程序: int aat aat=ole_1.activate(at_Type) If aat<> 0 Then Messagebox("OLE Activate","Unable to Activate") End If |
||||