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