其实向剪贴板中放入数据很简单,只是调用SetClipboardData函数就OK了。不过在这之前你必须打开剪贴板和清空剪贴板中的数据。OpenClipboard和EmptyClipboard
void CdrayFilesDlg::OnBnClickedPutData()
{
// TODO: 在此添加控件通知处理程序代码
if(!OpenClipboard())
{
MessageBox(L"Cannot open the Clipboard");
return;
}
if(!EmptyClipboard())
{
MessageBox(L"Cannot empty the Clipboard");
return;
}
char* data="HelloWorld!";
HGLOBAL hData=GlobalAlloc(GHND,strlen(data)+1);
char* pmenm=(char*)GlobalLock(hData);
memcpy(pmenm,data,strlen(data));
if((::SetClipboardData(CF_TEXT,hData))==NULL)
{
return;
}
CloseClipboard();
GlobalUnlock(hData);
GlobalFree(pmenm);
}
我这是放在了一个按钮的处理函数中,不过放入之后,我以前的那个获取剪贴板中数据的显示的是乱码,但是当我退出程序时粘贴到任何一个文档中都就可以的。。目前猜测是:当修改完数据之后,窗口会立即得到一个剪贴板的消息,而我们给它上了锁,所以就访问不到,产生乱码。以后仔细研究这个问题吧。。