1.将计算结果保存到剪切板
在按钮函数里添加如下函数
if (!OpenClipboard())//打开剪切板
{
return;
}
if (!EmptyClipboard())//清空剪切板的数据
{
CloseClipboard();
return;
}
CString str;
GetDlgItemText(IDC_STATIC_RESULT, str);
size_t cbStr = (str.GetLength() + 1) * sizeof(TCHAR);//申请的字节空间
HGLOBAL hData = GlobalAlloc(GMEM_MOVEABLE, cbStr);//获取剪切板内数据
memcpy_s(GlobalLock(hData), cbStr, str.LockBuffer(), cbStr);
GlobalUnlock(hData);
str.UnlockBuffer();
UINT mFormat = (sizeof(TCHAR) == sizeof(WCHAR) ? CF_UNICODETEXT: CF_TEXT);//剪切板格式
if (::SetClipboardData(mFormat, hData)==NULL)//拷贝数据到剪切板
{
MessageBox(_T("剪切板拷贝数据失败。"));
CloseClipboard();//关闭剪切板
return;
}
CloseClipboard();
MessageBox(_T("剪切板拷贝数据成功。"));
2.粘贴操作
在按钮函数里添加如下函数
UINT mFormat = (sizeof(TCHAR) == sizeof(WCHAR) ? CF_UNICODETEXT : CF_TEXT);//剪切板格式
if (!IsClipboardFormatAvailable(mFormat))//判断剪切板格式
{
return;
}
if (!OpenClipboard())//打开剪切板
{
return;
}
HANDLE hGlobal = GetClipboardData(mFormat);//得到剪切板数据
if (hGlobal != NULL)
{
LPTSTR lptstr = (LPTSTR)GlobalLock(hGlobal);
if (lptstr != NULL)
{
MessageBox(lptstr);
GlobalUnlock(hGlobal);
}
}
CloseClipboard();