目录

一、MFC使用

1、将字符串复制到剪贴板中

2、获得剪贴板中字符串

二、整理封装如下:

1、复制

2、粘贴


一、MFC使用

1、将字符串复制到剪贴板中

使用OnCopy() 响应复制操作:

将字符串nStr复制到剪切板中

         //剪切板操作if(!OpenClipboard()){AfxMessageBox(L"不能打开剪贴板!");return;}if(!EmptyClipboard()){AfxMessageBox(L"不能清空剪贴板!");CloseClipboard();return;}HGLOBAL hGlobal;LPTSTR pGlobal;//分配全局空间hGlobal=GlobalAlloc(GMEM_DDESHARE,nStr.GetLength()*2+2);pGlobal=(LPTSTR)GlobalLock(hGlobal);//为空间赋值lstrcpy(pGlobal,nStr);GlobalUnlock(hGlobal);//将内存hGlobal上的数据按一定格式复制到剪切板中if(!SetClipboardData(CF_UNICODETEXT,hGlobal)){AfxMessageBox(L"不能复制到剪贴板!");}CloseClipboard();

2、获得剪贴板中字符串

使用OnPaste() 进行粘贴:

将剪切板中的数据复制到字符串中

     HANDLE hGlobal;wchar_t* pGlobal;if(!OpenClipboard()){AfxMessageBox(L"不能打开剪贴板!");return;}if(!(hGlobal=GetClipboardData(CF_UNICODETEXT))){AfxMessageBox(L"不能获取剪贴板数据!");CloseClipboard();return;    }pGlobal=(wchar_t*)GlobalLock(hGlobal);GlobalUnlock(hGlobal);CloseClipboard();CString nStr=pGlobal;

二、整理封装如下:

1、复制

void CopyToClipboard(std::wstring nStr)
{if (!OpenClipboard(nullptr)){//AfxMessageBox(L"不能打开剪贴板!");return ;}if (!EmptyClipboard()){//  AfxMessageBox(L"不能清空剪贴板!");CloseClipboard();return ;}HGLOBAL hGlobal;LPTSTR pGlobal;int nLen = nStr.length() + 1;//分配全局空间hGlobal = GlobalAlloc(GMEM_DDESHARE, nLen * 2);pGlobal = (LPTSTR)GlobalLock(hGlobal);//为空间赋值lstrcpy(pGlobal, nStr.c_str());GlobalUnlock(hGlobal);//将内存hGlobal上的数据按一定格式复制到剪切板中if (!SetClipboardData(CF_UNICODETEXT, hGlobal)){//   AfxMessageBox(L"不能复制到剪贴板!");}CloseClipboard();
}

2、粘贴

std::wstring GetStrFromClipBoard()
{HANDLE hGlobal;wchar_t* pGlobal;if (!OpenClipboard(nullptr)){return L"";}if (!(hGlobal = GetClipboardData(CF_UNICODETEXT))){CloseClipboard();return L"";}pGlobal = (wchar_t*)GlobalLock(hGlobal);GlobalUnlock(hGlobal);CloseClipboard();std::wstring nStr = pGlobal;return nStr;
}

参考资料:

WINDOWS 剪切板操作_scuabin的博客-CSDN博客

如流,新一代智能工作平台

剪切板操作SetClipboardData GetClipboardData_ycc892009的博客-CSDN博客_setclipboarddata

SetClipboardData function (winuser.h) - Win32 apps | Microsoft Docs

C++内存分配秘籍—new,malloc,GlobalAlloc详解 - gaochaooo - 博客园

剪切板的使用: 复制 粘贴相关推荐

  1. 复制链接到剪切板php,剪切复制粘贴

    # 剪切复制粘贴 在这个页面中: * [基础](#基础) * [复制选中的文本片段](#复制选中的文本片段) * [复制文件路径](#复制文件路径) * [复制行或符号的引用](#复制行或符号的引用) ...

  2. QT读取剪切板内容-实现复制粘贴文本和图片

    1. 前言 很多软件都支持从剪切板里粘贴图片.文字数据到指定位置,比如:QQ.微信可以直接从剪切板粘贴图片.文字进行发送消息.这个功能QT里实现也很方便,接口QT都提供了. 来至QT帮助文档的介绍: ...

  3. vb ClipBoard 剪切板应用(复制剪切粘贴)

    代码如下:(谨以参考) Private Sub Command1_Click()     '复制     If Text1.SelText <> "" Then Cli ...

  4. 将剪切板中的图片粘贴至Word,浮动于文字上方,设置图片背景透明

    Sub Macro1()      '将剪切板中的图片粘贴至Word      Selection.Paste      '执行循环      For i = 1 To ActiveDocument. ...

  5. android文本复制自定义剪切板,android 剪切板-文本复制、粘贴

    1. 粘贴-文本保存到剪切板中 ClipboardManager clipboardManager = (ClipboardManager) context.getSystemService(Cont ...

  6. C#实现WinForm下DataGridView控件从剪切板中进行内容粘贴

    DataGridView是C#中在处理显示表格数据时常用的控件,但是在使用过程中,会发现复制DataGridView控件中的内容比较容易,而把剪切板中拷贝的内容黏贴到DataGridView控件中比较 ...

  7. js 复制图片到剪切板 和 js复制文本到剪切板

    js 复制图片到剪切板 <a href="javascript:;" id="copyQrcode" data-base=""> ...

  8. Windows 剪切板的应用——复制浏览器or本地目录图片

    一.简述 最近看了windows的剪切板相关的应用代码,于是乎,便想将浏览器中复制的图片保存到本地,经过尝试,通过以下代码完成在浏览器中右键选择复制图片,然后监控键盘事件,当按下Ctrl + v 时保 ...

  9. 禁止复制粘贴(electron、vue)

    项目中遇到非会员禁止复制粘贴,会员可以一键复制的需求 一.electron中提供了clipboard模块,用于在系统剪切板上执行复制粘贴操作 参照官方文档 clipboard.readText([ty ...

  10. android 剪切板监听_安卓监听剪切复制粘贴事件实例

    本文的剪切复制粘贴事件只针对文本,URI 和 intent 不在讨论范围内. 实例代码实现了2个功能: 监听剪切复制粘贴事件: 获取剪切复制或粘贴的文本: 剪切复制 有2个方法监听剪切复制事件:剪切板 ...

最新文章

  1. 【正一专栏】没有对比就没有伤害-恒大亚冠赛有感
  2. 使用Git工具下载android源码---带步骤
  3. 一个例子让你了解Java反射机制
  4. IOS用CGContextRef画各种图形(文字、圆、直线、弧线、矩形、扇形、椭圆、三角形、圆角矩形、贝塞尔曲线、图片)
  5. the vm session was closed before any attempt to power it on
  6. 不可变集合相比可变集合_简单的基准测试:不可变集合VS持久集合
  7. 文本框获取和失去焦点默认值问题
  8. python sys模块详解_python之sys模块详解
  9. linux img提取文件系统,Linux下 mount IMG文件提示“您必须制定文件系统类型”解决方法...
  10. 利用WinRar压缩和解压缩文件
  11. python图书馆管理系统 面向对象_python---面向对象程序设计之图书管理系统
  12. 小程序开发视频教程免费下载
  13. 输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。
  14. 【WSL2 Win10】解决子系统中nividia-smi出现的Failed to initialize NVML GPU access blocked by the operating systeM
  15. 客服客户聊天系统源码分享
  16. 【03项目立项管理】【理解版】
  17. Python 变量作用域问题 函数名.变量名
  18. 雷总:我也想做高级工程师 !
  19. 安卓很抱歉已停止运行
  20. 通信算法之九十四:4G LTE通信系统 PBCH/PCFICH/PHICH信道处理流程

热门文章

  1. 5-20 打印九九口诀表 (15分)
  2. 如何防御DOS和DDOS攻击
  3. 2021-08-07 解决安装MacTeX后界面显示法语问题
  4. 【obs-studio开源项目从入门到放弃】obs-studio项目简介和架构
  5. [OpenCV] 练习题实现代码 使用 cv.addWeighted 函数在文件夹中创建图像的幻灯片放映,并在图像之间进行平滑过渡
  6. java joda datetime_关于java:使用Joda将日期转换为DateTime
  7. 南卡的电容笔对比倍思哪个好?南卡和倍思电容笔测评
  8. 手机卡顿?可能是你没关闭这两个选项(小米手机为例)
  9. 双卡手机,sim卡状态改变测试
  10. python对异常捕获的操作