原文https://blog.csdn.net/hdtrs2010/article/details/45058417),亲测有效
// 复制到剪贴板
void CMyAppDlg::OnBnClickedCopy()
{
// TODO: 在此添加控件通知处理程序代码
CString source;
// 获取输出框CE_Output的内容
CE_Output.GetWindowTextW(source);
if (OpenClipboard())
{
//防止非ASCII语言复制到剪切板为乱码
int buff_size = source.GetLength();
CStringW strWide = CStringW(source);
int nLen = strWide.GetLength();
//将剪切板置空
EmptyClipboard();
HANDLE clipbuffer = GlobalAlloc(GMEM_DDESHARE, (nLen + 1) * 2);
if (!clipbuffer)
{
CloseClipboard();
return;
}
char* buffer = (char*)GlobalLock(clipbuffer);
memset(buffer, 0, (nLen + 1) * 2);
memcpy_s(buffer, nLen * 2, strWide.GetBuffer(0), nLen * 2);
strWide.ReleaseBuffer();
GlobalUnlock(clipbuffer);
SetClipboardData(CF_UNICODETEXT, clipbuffer);
CloseClipboard();
MessageBoxW(_T("输出内容已经复制!"), _T("提示"),MB_OK);
}
}