工作问题积累(二十七)复制功能(文本)
2014-08-30 09:52
288 查看
之前blog里面有讲到截屏保存的操作,将截到的图片放到剪贴板里面,现在的项目需求是复制文字,大家肯定了解过Clipboard这个东西,那么这边
就直接贴代码了。
如之前文章中提到,这些小功能为了方便调用,最好写成函数,上面的函数可以设置参数,文本信息放置到形参里面去,这样更好一点。
解释下上面代码:
代码不难理解,有几个地方可能没见过,
1.HGLOBAL这个类型可以跟踪下,typedef HANDLE HGLOBAL; 这个是句柄,应该是SetClipboardData函数参数的类型。
2.CF_TEXT表示需要复制的是文本信息。
SetClipboardData(CF_BITMAP,hNewBit);这个就是截屏保存中的代码,CF_BITMAP表示图片信息。
就直接贴代码了。
void CQueenMainDlg::CopyPlayerIdToBoard() { CString strPlayerID = GetCtrl(kPlayerNumID)->GetText(); if (OpenClipboard()){//将文本复制到粘贴板 HGLOBAL clipbuffer; char * buffer; EmptyClipboard(); clipbuffer = GlobalAlloc(GMEM_DDESHARE, strPlayerID.GetLength()+1); buffer = (char*)GlobalLock(clipbuffer); strcpy(buffer, LPCSTR(strPlayerID)); SetClipboardData(CF_TEXT,clipbuffer); CloseClipboard(); } }
如之前文章中提到,这些小功能为了方便调用,最好写成函数,上面的函数可以设置参数,文本信息放置到形参里面去,这样更好一点。
解释下上面代码:
代码不难理解,有几个地方可能没见过,
1.HGLOBAL这个类型可以跟踪下,typedef HANDLE HGLOBAL; 这个是句柄,应该是SetClipboardData函数参数的类型。
2.CF_TEXT表示需要复制的是文本信息。
/* * Predefined Clipboard Formats */ #define CF_TEXT 1 #define CF_BITMAP 2 #define CF_METAFILEPICT 3 #define CF_SYLK 4 #define CF_DIF 5 #define CF_TIFF 6 #define CF_OEMTEXT 7 #define CF_DIB 8 #define CF_PALETTE 9 #define CF_PENDATA 10 #define CF_RIFF 11 #define CF_WAVE 12 #define CF_UNICODETEXT 13 #define CF_ENHMETAFILE 14
SetClipboardData(CF_BITMAP,hNewBit);这个就是截屏保存中的代码,CF_BITMAP表示图片信息。
相关文章推荐
- 工作问题积累(二)程序异常出错重启功能
- 工作问题积累(十六)动态改变网页中的内容,向网页中添加文本
- 好长时间上不了博客,我还以为因为我发表抗日言论账户被删了,编程中好多新经验新发现不能拿出来和朋友们分享,那个急呀。以下是我在工作中积累的一些经验和解决的一些问题,希望能对大家有一点帮助。
- 水滴石穿之子页面的滚动条设置 表格的固定高度宽度问题 复制带格式的文本
- 禁用右键、文本选择功能、复制按键
- jquery禁用右键、文本选择功能、复制按键的实现
- jquery禁用右键、文本选择功能、复制按键的实现
- 工作碰到的问题解决积累
- jquery禁用右键、文本选择功能、复制按键的实现
- 禁用右键、文本选择功能、复制按键
- 禁用右键、文本选择功能、复制按键
- 基于jquery的禁用右键、文本选择功能、复制按键的实现代码
- Java右键菜单实现文本组件内容的的复制、粘贴、剪切功能
- JQuery禁用右键、文本选择功能、复制按键的实现(转载)
- jquery禁用右键、文本选择功能、复制按键的实现
- Redis的复制功能以及Redis复制机制本身的优缺点以及集群搭建问题
- 利用oracle高级复制功能实现数据同步的问题
- 工作学习笔记——VS2010无法复制exe文件导致的工程生成失败问题
- extjs表格(Ext4 Grid)文本启用选择复制功能
- 福昕PDF阅读器文本复制功能设置