MFC中用剪贴板实现进程的通信中出现错误
void CClipboardDlg::OnBnClickedBtnSend(){
// TODO: 在此添加控件通知处理程序代码
if(OpenClipboard())
{
CString str;
HANDLE hClip;
char* pBuf;
EmptyClipboard();
GetDlgItemText(IDC_SEND,str);
hClip=GlobalAlloc(GMEM_MOVEABLE,str.GetLength()+1);
pBuf=(char*)GlobalLock(hClip);
strcpy(pBuf,(char*)(LPCTSTR)str);
GlobalUnlock(hClip);
SetClipboardData(CF_TEXT,hClip); 如果输入汉字出现终端,是程序中已触发了一个剪贴板发生中断,可能原因是堆破坏,如果输入英文字符串不会出现此错误.
CloseClipboard( );
}
}
void CClipboardDlg::OnBnClickedBtnRecv()
{
// TODO: 在此添加控件通知处理程序代码
if(OpenClipboard())
{
if(IsClipboardFormatAvailable(CF_TEXT))
{
char *pBuf;
HANDLE hClip;
hClip=GetClipboardData(CF_TEXT);
pBuf=(char*)GlobalLock(hClip);
SetDlgItemText(IDC_RECV,(LPCTSTR)pBuf);
GlobalUnlock(hClip);
CloseClipboard( );
}
}
}
在英文输入不发生错误时,出现接收端编辑框的内容为乱码.我使用了单步追踪发现在发送端的获得pbuf的值只是输入字符串的第一个字母,请问这是什么原因
多谢了
呀
我是刚开始学习MFC编程,以后大家多多帮忙呀
呵呵