这部分讲得通俗易懂,初学可以看看http://www.cnblogs.com/BoyXiao/archive/2010/12/25/1916677.html
这部分是实现宽字符集的 http://www.letuknowit.com/archives/10
自己实现代码:
void C剪贴板通信Dlg::OnBnClickedSendmessage()
{
//#define _unicode
// TODO: 在此添加控件通知处理程序代码
//加入提供汉字的支持,SetClipboardData指定文本格式为CF_UNICODETEXT,复制的时候用wcscp
if(this->OpenClipboard())
{
CString str;
wchar_t * pBuf;
EmptyClipboard();
GetDlgItemText(IDC_SEND,str);
//HGLOBAL hClip = GlobalAlloc(GMEM_MOVEABLE,str.GetLength()+1);
HGLOBAL hClip = (wchar_t *)GlobalAlloc(GHND,sizeof(wchar_t) + str.GetLength()*2);
pBuf = (wchar_t*)GlobalLock(hClip);
wcscpy(pBuf,str);
GlobalUnlock(hClip);
SetClipboardData(CF_UNICODETEXT,hClip);
CloseClipboard();
}
else
{
MessageBox(TEXT("@打开剪贴板失败@"));
}
}
void C剪贴板通信Dlg::OnBnClickedRecvmessage()
{
// TODO: 在此添加控件通知处理程序代码
if(OpenClipboard())
{
if(IsClipboardFormatAvailable(CF_UNICODETEXT))
{
HANDLE hClip = GetClipboardData(CF_UNICODETEXT);
wchar_t * pBuf =(wchar_t*) GlobalLock(hClip);
SetDlgItemText(IDC_RECV,pBuf);
}
CloseClipboard();
}
}