关于复制粘贴剪切板功能VC中的实现!

首先说明的是剪切板是系统提供的功能,可以用来实现进程间的通信,在VC中的实现也是很简单的。
以下是VC6.0 MFC环境:

  1. if(OpenClipboard()) //首先打开一个剪切板,如果成功则返回非0值  
  2. {   
  3.  HANDLE hClip;      //声明一个句柄  
  4.  CString str;  
  5.  char *pBuf;  
  6.  EmptyClipboard();  //置空这个剪切板,且得到剪切板的所有权  
  7.  GetDlgItemText(IDC_EDIT1,str);//将文本框的值赋给str  
  8.  hClip=GlobalAlloc(GMEM_MOVEABLE,str.GetLength()+1);  
  9.  //申请锁定一块存放数据的内存区域  
  10.  pBuf=(char *)GlobalLock(hClip);//得到指向内存区域的第一个字节指针  
  11.  strcpy(pBuf,str);//将文本框的值拷贝到内存中  
  12.  GlobalUnlock(hClip);//解除内存锁定  
  13.  SetClipboardData(CF_TEXT,hClip);//设置数据到剪切板中  
  14.  CloseClipboard();//关闭剪切板  
  15.   
  16.      
  17. }  


 

这样的话,输入在文本框的内容就已经被“复制”过了,此时正处于内存区域中,比如打开一个记事本,直接粘贴就能将内存提取出来,如此就做到了进城间的通信。

以下是“粘贴”的VC实现:

  1. if(OpenClipboard())//首先打开一个剪切板  
  2. {  
  3.  if(IsClipboardFormatAvailable(CF_TEXT))//检查此时剪切板中数据是否为TEXT,可以设置成别的!  
  4.  {  
  5.  HANDLE hClip; //声明一个句柄  
  6.  char *pBuf;  
  7.  hClip=GetClipboardData(CF_TEXT);//得到剪切板的句柄  
  8.  pBuf=(char *)GlobalLock(hClip);//得到指向这块内存的指针  
  9.  GlobalUnlock(hClip);//解除内存锁定  
  10.  SetDlgItemText(IDC_EDIT2,pBuf);//将他设置给一个文本框显示  
  11.  CloseClipboard();//关闭此剪切板  
  12.  }  
  13. }   


 

这样就实现了“复制”,和“粘贴”的功能了,当然平时windows已经提供了此功能,不过我们主要还是利用它来进行进城间的通信。


原文:http://blog.csdn.net/jj12345jj198999/article/details/6653905

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值