MFC访问剪切板_人生几何_新浪博客

将数据COPY到剪切板原理:
1:OpenClipboard() 打开剪切板
2:EmptyClipboard() 清空剪切板,让当前进程拥有剪切板
3:GlobalAlloc() 分配全局堆内存
4:GlobalLock() 锁定内存并返回内存首地址
5:strcpy() 给内存赋值
6:GlobalUnlock() 解锁内存
7:SetClipboardData() 设置到剪切板
8:CloseClipboard() 关闭剪切板

[cpp] view plain copy
void CClipboardDlg::OnBnClickeon2()  
{  
if(OpenClipboard())//打开剪切板  
{  
   EmptyClipboard();//清空剪切板,让当前窗口进程拥有剪切板  
   CString Str;  
   GetDlgItemText(IDC_EDIT_SEND,Str);//获取数据  
   HANDLE hClip;  
   hClip=GlobalAlloc(GMEM_MOVEABLE,Str.GetLength()+1);//分配内存对象返回地址(该函数是系统从全局堆中分配内存)  
   char *pBuf;  
   pBuf=(char *)GlobalLock(hClip);//锁定全局内存中指定的内存块,并返回一个地址值,令其指向内存块的起始处  
   strcpy(pBuf,Str);//将Str对象中的数据Copy到内存空间中  
   GlobalUnlock(hClip);//解锁全局内存块  
   SetClipboardData(CF_TEXT,hClip);//设置剪贴板数据  
   CloseClipboard();//关闭  
}  
}  
 

[cpp] view plain copy
void CClipboardDlg::OnBnClickeon1()  
{  
// TODO: 在此添加控件通知处理程序代码  
if(IsClipboardFormatAvailable(CF_TEXT))//获取剪贴板里的格式是否可以处理  
{  
   if(OpenClipboard())  
   {  
    HANDLE hClip;  
    char *pBuf;  
    hClip=GetClipboardData(CF_TEXT); //检索从指定格式剪贴板数据,并返回一个剪贴板对象句柄  
    pBuf=(char *)GlobalLock(hClip);//锁定全局内存中指定的内存块 并返回一个地址值,并返回数据指针头地址  
    GlobalUnlock(hClip);           //解锁  
    SetDlgItemText(IDC_EDIT_RECV,pBuf);  
    CloseClipboard();  
   }  
}  
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值