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

Mr.*_*Boy 7 clipboard mfc

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

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

更新:根据mwigdahl的回复创建了一个新问题

mwi*_*ahl 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();
}
Run Code Online (Sandbox Code Playgroud)