读书人

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

发布时间: 2012-03-04 11:13:33 作者: rapoo

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的地址对应的信息是不受控的。

读书人网 >VC/MFC

热点推荐