剪贴板 文件 的拷贝,剪切,粘贴C++

剪贴板 文件 的拷贝,剪切,粘贴C++,第1张

if(OpenClipboard())

{

if(IsClipboardFormatAvailable(CF_TEXT))

{

HANDLE hClip;

char pBuf;

hClip=GetClipboardData(CF_TEXT);

pBuf=(char)GlobalLock(hClip);

GlobalUnlock(hClip);

CloseClipboard();

}

}

我也是找的资料,不知是不是你要的……

If the function succeeds, the return value is a pointer to the first byte of the memory block

返回的是指向分配的内存的指针,(TCHAR )GlobalLock(hClip)只是指向新分配的内存的指针,此时,该内存并没有初始化,所以是乱码,

_tcscpy(pBuf, str);执行后,该内存就不是乱码了

给你一个通用的代码,无论是ansi还是unicode都管用的。

if (!OpenClipboard())

return;

if(!EmptyClipboard())

{

CloseClipboard();

return;

}

CString str = _T("abc");

size_t cbStr = (strGetLength()+1)sizeof(TCHAR);

HGLOBAL hData = GlobalAlloc(GMEM_MOVEABLE, cbStr);

memcpy_s(GlobalLock(hData), cbStr, strLockBuffer(), cbStr);

GlobalUnlock(hData);

strUnlockBuffer();

UINT uiFormat = (sizeof(TCHAR) == sizeof(WCHAR)) CF_UNICODETEXT : CF_TEXT;

if (::SetClipboardData(uiFormat, hData) == NULL)

{

MessageBox(_T("设置剪贴板数据失败!"));

CloseClipboard();

return;

}

CloseClipboard();

以上就是关于剪贴板 文件 的拷贝,剪切,粘贴 C++全部的内容,包括:剪贴板 文件 的拷贝,剪切,粘贴 C++、C++ 关于剪贴板、vc砖家们来解答一下:照搬书上的代码(vc6的),稍微改动了一下: *** 作剪贴板的一段代码,复制再粘贴等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10073130.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存