void CClipboardDlg::OnBnClickedBtnSend()
{
// TODO: 在此添加控件通知处理程序代码
CString strSource;
if(OpenClipboard()) //打开剪贴板
{
HGLOBAL hGlobal;
LPTSTR pBuffer;
EmptyClipboard(); //清空剪贴板内容
GetDlgItemText(IDC_EDIT_SEND, strSource); //从指定ID文本框获取字符串
hGlobal = GlobalAlloc(GHND, (strSource.GetLength()+1)*sizeof(TCHAR)); //获取内存,长度为字符串长度
pBuffer = (LPTSTR)GlobalLock(hGlobal);
memcpy(pBuffer, strSource, (strSource.GetLength()+1)*sizeof(TCHAR));
GlobalUnlock(hGlobal);
SetClipboardData(CF_UNICODETEXT, hGlobal); // 设置剪贴板内容
CloseClipboard(); // 必须关闭剪贴板
}
}
void CClipboardDlg::OnBnClickedBtnRecv()
{
// TODO: 在此添加控件通知处理程序代码
if(OpenClipboard())
{
if(IsClipboardFormatAvailable(CF_UNICODETEXT))
{
HGLOBAL hGlobal;
LPTSTR pBuffer;
hGlobal = GetClipboardData(CF_UNICODETEXT);
pBuffer = (LPTSTR)GlobalLock(hGlobal);
GlobalUnlock(hGlobal);
CString str(pBuffer);
SetDlgItemText(IDC_EDIT_RECV, pBuffer);
}
CloseClipboard(); // 必须关闭剪贴板
}
}
本文提供了一个使用C++实现的剪贴板操作示例,包括如何将文本发送到剪贴板以及如何从剪贴板接收文本。示例中详细展示了打开剪贴板、设置剪贴板数据和关闭剪贴板的过程。
321

被折叠的 条评论
为什么被折叠?



