使用OnCopy() 响应复制操作:
将字符串nStr复制到剪切板中
//剪切板操作 if(!OpenClipboard()) { AfxMessageBox(L"不能打开剪贴板!"); return; } if(!EmptyClipboard()) { AfxMessageBox(L"不能清空剪贴板!"); CloseClipboard(); return; } HGLOBAL hGlobal; LPTSTR pGlobal; //分配全局空间 hGlobal=GlobalAlloc(GMEM_DDESHARE,nStr.GetLength()*2+2); pGlobal=(LPTSTR)GlobalLock(hGlobal); //为空间赋值 lstrcpy(pGlobal,nStr); GlobalUnlock(hGlobal); //将内存hGlobal上的数据按一定格式复制到剪切板中 if(!SetClipboardData(CF_UNICODETEXT,hGlobal)) { AfxMessageBox(L"不能复制到剪贴板!"); } CloseClipboard();
使用OnPaste() 进行粘贴:
将剪切板中的数据复制到字符串中
HANDLE hGlobal; wchar_t* pGlobal; if(!OpenClipboard()) { AfxMessageBox(L"不能打开剪贴板!"); return; } if(!(hGlobal=GetClipboardData(CF_UNICODETEXT))) { AfxMessageBox(L"不能获取剪贴板数据!"); CloseClipboard(); return; } pGlobal=(wchar_t*)GlobalLock(hGlobal); GlobalUnlock(hGlobal); CloseClipboard(); CString nStr=pGlobal;
参考资料:
http://blog.csdn.net/scuabin/article/details/5576218
http://hi.baidu.com/azurachen/blog/item/1339ca9b1fad49066e068cbf.html
http://blog.csdn.net/ycc892009/article/details/6521565
http://msdn.microsoft.com/en-us/library/ms649051(VS.85).aspx
http://www.cnblogs.com/gaochaooo/archive/2009/09/03/1559764.html