首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

VC++ 获取剪贴板内容解决方法

2012-03-04 
VC++ 获取剪贴板内容我这边现在有一操作,操作前要求获取剪贴板中复制内容的行数:如我从EXCEL中复制了三行

VC++ 获取剪贴板内容
我这边现在有一操作,操作前要求获取剪贴板中复制内容的行数:
如我从EXCEL中复制了三行内容,现在将其黏贴的我的一表格控件中,该控件中以有1W行数据,现在黏贴的数据覆盖了其中三行,保存时我当然只须保存该三行。
我的操作是,获取剪贴板中复制内容的行数,然后再表格控件黏贴时,获取黏贴的起始行号,将行号~(行号+获取的行数)行设一修改标签。保存时,逐行获取标签,标签为True的保存。
这样,如何获取剪贴板中的内容。

其实要实现的功能就如Excel中的操作:
选择了若干行,复制,黏贴时,我将光标放在某一单元格内容,系统会像复制时的格式进行黏贴)


[解决办法]
获取剪贴板上的内容后进行分析换行符号不行吗?
下面的代码是用来实现从剪贴板上取得文本的。
  char * buffer = NULL;
  //open the clipboard
  CString fromClipboard;
  if ( OpenClipboard() ) 
  {
   HANDLE hData = GetClipboardData( CF_TEXT );
   char * buffer = (char*)GlobalLock( hData );
   fromClipboard = buffer;
   GlobalUnlock( hData );
   CloseClipboard();
  }
[解决办法]
char * buffer = (char*)GlobalLock( hData ); 
   fromClipboard = buffer; 
   GlobalUnlock( hData ); 
你这么写法应该不行的。应该在GlobalUnlock之前使用fromClipboard。否则Unlock后,你这个fromClipboard的地址对应的信息是不受控的。

热点排行