运行时让用户规定对象

通过运行时显示“选择性粘贴”和“插入对象”对话框,允许用户创建一系列对象。当创建以文档为中心的应用程序时就可以这样做。在这种应用程序中,用户结合来自不同应用程序的数据创建一个单一的文档。例如,这个应用程序可能是一个字处理器,在这个处理器中,用户可能输入一些正文,然后使用“插入对象”或“选择性粘贴”对话框嵌入电子数据表和图表。

用 OLE 容器控件的 Insert ObjDlg 方法显示“插入对象”对话框,或用 PasteSpecialDlg 方法显示“选择性粘贴”对话框。这两个对话框让用户决定什么对象进入 OLE 容器控件。

通过在事件—比如一个菜单的 Click 事件— 中调用适当的方法,在运行时显示这些对话框:

Private Sub cmdInsert_Click ()
   '显示“插入对象”对话框。
   oleObj1.InsertObjDlg
   '检查是否用 OLEType 属性
   '创建一个对象。
   If oleObj1.OLEType = vbOLENone Then
      MsgBox "Object Not Created."
   End If
End Sub

Private Sub oleObj1_Click ()
   '决定包含在剪贴板中的数据能否被粘贴进 OLE 容器控件。
   If oleObj1.PasteOK Then
      '显示“选择性粘贴”对话框。
      oleObj1.PasteSpecialDlg
      '检查对象是否已被创建。
      If oleObj1.OLEType = vbOLENone Then
         MsgBox "Object Not Created."
      End If
   End If
End Sub

一旦对话框被显示,就不再需要写更多的代码去创建对象。用户只要在对话框中作出选择,再选“确定”,便可创建对象。如果用户取消对话,将不能创建对象。

注意 在显示“插入对象”或“选择性粘贴”对话框之前,您可能想确定 OLEType 属性的值,看看 OLE 容器控件是否包含链接对象、嵌入对象或没有对象,正如前面的代码示例中演示的那样。

常数 vbOLENone 和其它固有的常数被列在“对象浏览器”的 Visual Basic (VB) 对象库中。