void CClipeDlg::OnButton1() //发送数据
{
// TODO: Add your control notification handler code here
if(OpenClipboard())

EmptyClipboard();
HANDLE handle;
char* buf;
CString str;
GetDlgItemText(IDC_EDIT_CUT,str);
handle=GlobalAlloc(GMEM_MOVEABLE,str.GetLength()+1);
buf=(char*)GlobalLock(handle);
strcpy(buf,str);
GlobalUnlock(handle);
SetClipboardData(CF_TEXT,handle);
CloseClipboard();
}
}void CClipeDlg::OnButton2() //接收数据
{
// TODO: Add your control notification handler code here
if(IsClipboardFormatAvailable(CF_TEXT))
{
   HANDLE handle; 
   char* pbuf;
   handle=GetClipboardData(CF_TEXT);
   pbuf=(char*)GlobalLock(handle);
   GlobalUnlock(handle);
   SetDlgItemText(IDC_EDIT_RD,pbuf);
   CloseClipboard();
}
   
}
为什么最后接收数据的时候,pbuf是空啊?

解决方案 »

  1.   

    dddddddddddddddddddddddddddddddddddddddddddd
      

  2.   

    是不是这个函数调用完了,你才看的pbuf为空?
      

  3.   

    晕,void CClipeDlg::OnButton2() //接收数据里的
    剪贴板都还没打开:
    OpenClipboard();
      

  4.   

    if(OpenClipboard())

    EmptyClipboard();
    HANDLE handle;
    char* buf;
    CString str;
    GetDlgItemText(IDC_EDIT_CUT,str);
    handle=GlobalAlloc(GMEM_MOVEABLE,str.GetLength()+1);
    buf=(char*)GlobalLock(handle);
    strcpy(buf,str);
    GlobalUnlock(handle);
    SetClipboardData(CF_TEXT,handle);
    CloseClipboard();//把这句话去掉就可以了~~~
    }
    你自己试试看,应该可以了~~~
      

  5.   

    帅哥,接受数据里的
    OpenClipboard()你在那里调用了,自杀
      

  6.   

    还有,谢谢snowbirdfly,你的方法也行,看来,我还要下苦功夫,头脑转不得弯!!!