我们的代码库中的添加到剪贴板代码非常低级 - 分配全局内存等等。对于简单的情况,我只想将一些纯文本放在剪贴板上,是否有任何例程可以包装所有这些内容?
一个例子是 CRichEditCtrl 具有 Copy() 和 Cut() 方法,可以自动将当前选择放入剪贴板。 MFC 是否可以单独提供此类功能?
Update: 创建了一个新问题 https://stackoverflow.com/questions/2265382/win32-copying-string-to-clipboard-only-one-character-written-when-pasted基于姆维格达尔的回应
不,但自己包裹起来并不难。改编自冰霜密码 http://www.frostcode.info/common-articles/write-to-windows-clipboard.html(且未经测试):
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();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)