我是靠谱客的博主 忧郁哈密瓜,最近开发中收集的这篇文章主要介绍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();  

   }  

}  

}

最后

以上就是忧郁哈密瓜为你收集整理的MFC访问剪切板的全部内容,希望文章能够帮你解决MFC访问剪切板所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部