MFC是否提供了在剪贴板上放置文本的快捷方法?

时间:2010-02-12 16:47:50

标签: mfc clipboard

我们代码库中的添加到剪辑板代码非常低级 - 分配全局内存等等。对于简单的情况我只想在剪贴板上放一些纯文本,有没有可以包装所有东西的例程?

一个例子是CRichEditCtrl有Copy()& Cut()方法自动将当前选择放在剪贴板上。 MFC是否可以单独使用这种功能?

更新:根据mwigdahl的回复创建new question

1 个答案:

答案 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();
}