我们代码库中的添加到剪辑板代码非常低级 - 分配全局内存等等。对于简单的情况我只想在剪贴板上放一些纯文本,有没有可以包装所有东西的例程?
一个例子是CRichEditCtrl有Copy()& Cut()方法自动将当前选择放在剪贴板上。 MFC是否可以单独使用这种功能?
更新:根据mwigdahl的回复创建new question
答案 0 :(得分:6)
不,但自己包装并不难。改编自Frost Code(和未经测试):
void SetClipboardText(CString & szData)
{
HGLOBAL h;
LPTSTR arr;
h=GlobalAlloc(GMEM_MOVEABLE, szData.GetLength()+1);
arr=(LPTSTR)GlobalLock(h);
strcpy_s((char*)arr, szData.GetLength()+1, szData.GetBuffer());
szData.ReleaseBuffer();
GlobalUnlock(h);
::OpenClipboard (NULL);
EmptyClipboard();
SetClipboardData(CF_TEXT, h);
CloseClipboard();
}