怎么在MFC中把一个CString的内容放到用户的剪贴板上,可以帮我做一个实现这个功能的函数吗?
举报
MFC如何操作剪贴板
举报
//这个函数必须是成员函数,否则以下代码行不通
void CXXXDlg::copy(CString str)//参数str就是要放到剪贴板中的内容
{
if (this->OpenClipboard()) //如果能打开剪贴板
{
::EmptyClipboard(); //清空剪贴板,使该窗口成为剪贴板的拥有者
HGLOBAL hClip;
//判断要是文本数据,分配内存时多分配一个字符
hClip = ::GlobalAlloc(GMEM_MOVEABLE, (str.GetLength() * 2) + 2);
TCHAR *pBuf;
pBuf = (TCHAR *)::GlobalLock(hClip);//锁定剪贴板
lstrcpy(pBuf, str);//把CString转换
::GlobalUnlock(hClip);//解除锁定剪贴板
::SetClipboardData(CF_UNICODETEXT, hClip);//把文本数据发送到剪贴板 CF_UNICODETEXT为Unicode编码
::CloseClipboard();//关闭剪贴板
}
}
已解决!