复制内容到系统剪贴板,失败!扭结,求高手
复制内容到系统剪贴板,失败!纠结,求高手
直接上代码。!
这个函数就是这样的。 szDNSInfo是传入的参数
debug发现, 函数执行没问题。缓冲区内有内容。
但是我打开记事本,往里面粘贴,发现不是我复制的内容。求解,怎么回事?
这个剪贴板应该是系统默认的剪贴板,应该是全局的吧。为什么我失败了
------解决方案--------------------
你没有打开开剪贴板
if(source != "" && OpenClipboard())
{
HGLOBAL clipbuffer;
char * buffer;
EmptyClipboard();
clipbuffer = GlobalAlloc(GMEM_DDESHARE, source.GetLength()+1);
buffer = (char*)GlobalLock(clipbuffer);
strcpy(buffer, LPCSTR(source));
GlobalUnlock(clipbuffer);
SetClipboardData(CF_TEXT,clipbuffer);
CloseClipboard();
}
直接上代码。!
- C/C++ code
void CXXXXXXX::CopyToClipboard(std::string szDNSInfo) { EmptyClipboard(); HGLOBAL hClip; hClip=GlobalAlloc(GMEM_SHARE, szDNSInfo.length()+1); char *pBuf; pBuf=(char *)GlobalLock(hClip); strcpy(pBuf, szDNSInfo.c_str()); GlobalUnlock(hClip); SetClipboardData(CF_TEXT,hClip); CloseClipboard(); }
这个函数就是这样的。 szDNSInfo是传入的参数
debug发现, 函数执行没问题。缓冲区内有内容。
但是我打开记事本,往里面粘贴,发现不是我复制的内容。求解,怎么回事?
这个剪贴板应该是系统默认的剪贴板,应该是全局的吧。为什么我失败了
------解决方案--------------------
你没有打开开剪贴板
if(source != "" && OpenClipboard())
{
HGLOBAL clipbuffer;
char * buffer;
EmptyClipboard();
clipbuffer = GlobalAlloc(GMEM_DDESHARE, source.GetLength()+1);
buffer = (char*)GlobalLock(clipbuffer);
strcpy(buffer, LPCSTR(source));
GlobalUnlock(clipbuffer);
SetClipboardData(CF_TEXT,clipbuffer);
CloseClipboard();
}