WEB开发网
开发学院软件开发VC 使用Visual C++实现OLE剪贴板 阅读

使用Visual C++实现OLE剪贴板

 2008-11-13 19:30:10 来源:WEB开发网   
核心提示: 注意:仅适用于Windows NT或Windows 2000操作系统) 表1常用的标准剪贴板格式 要编写一个实现剪切和复制命令的函数,就要在你的应用程序中实现选定操作;要编写一个实现粘贴命令的函数,使用Visual C++实现OLE剪贴板(3),就需要请求剪贴板来检测它是否包含你的应用程序

注意:仅适用于Windows NT或Windows 2000操作系统)

---- 表1 常用的标准剪贴板格式

---- 要编写一个实现剪切和复制命令的函数,就要在你的应用程序中实现选定操作;要编写一个实现粘贴命令的函数,就需要请求剪贴板来检测它是否包含你的应用程序能够支持的数据。下面的代码实现了复制命令,其它实现可仿照进行,在此不再赘言。

---- 程序示例:

  void CMyView::OnEditCopy()
  {
  if ( !OpenClipboard() )
  {
  AfxMessageBox( "无法打开剪贴板" );
  return;
  }
  // 删除目前剪贴板的内容
   if( !EmptyClipboard() )
   {
  AfxMessageBox( "无法清除剪贴板" );
  return;
  }
  // 获取选定的数据
  // 检查是否为剪贴板支持的格式
  if ( ::SetClipboardData( CF_??, hData ) == NULL )
  // CF_??指定了剪贴板中数据的格式,
  //表1列出了标准的剪贴板格式
  {
  AfxMessageBox( "无法将数据复制到剪贴板当中" );
  CloseClipboard();
  return;
  }
  // ...
  CloseClipboard();
  }

---- 四、使用OLE剪贴板机制

---- 首先举个例子给你一些关于OLE剪贴板的感性认识,同时说明你需要为OLE剪贴板做哪些事情:Microsoft Excel为工作表注册了一个自定义的格式,这个格式能够比其它标准格式(如位图或纯文本等)提供更多的信息。当此数据被粘贴到一个支持工作表的程序(比如Lotus 1-2-3)时,所有的原工作表中的公式和数值将被保留,并且还可能会根据需要被更新。Excel同样将数据以OLE格式存放在剪贴板中,这样它就可以作为一个OLE对象被嵌入。任何OLE文档包容器(Container)(比如Microsoft Word)能够将该数据作为嵌入对象粘贴进文档(比如通过“选择性粘贴”,可以在Word中粘贴进Excel工作表对象)。这个嵌入对象能够通过激活Microsoft Excel来进行修改(在Word中可以通过双击对象实现)。该工作表甚至可以被粘贴到一个绘图程序(比如的画笔)。当然,这时你无论如何都没有办法将其中的数据像在工作表中一样修改,因为它已经是图片了。

上一页  1 2 3 4 5 6  下一页

Tags:使用 Visual 实现

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接