CListBox多选并把多选的内容拷贝到剪贴板
2012-11-23 16:15
295 查看
int nCount = GetSelCount();
if(0 == nCount) return;
CArray<int,int> aryListBoxSel;
// 数组用来保存选择的项目的索引
aryListBoxSel.SetSize(nCount);
GetSelItems(nCount, aryListBoxSel.GetData());
CString strSelAll=_T("");
CString strText;
for(int i=0; i<nCount; i++){
int nIndex = aryListBoxSel.GetAt(i); // 取得选择的项目的索引
GetText(nIndex,strText); // 根据索引获得选择的字符串
strSelAll += strText;
strSelAll += _T("\r\n");
}
// 复制到剪贴板
HGLOBAL hClip;
//定义一个HGLOBAL句柄变量用来指向分配的内存块
if (OpenClipboard())
{
EmptyClipboard(); //将剪贴板内容清空
hClip=GlobalAlloc(GMEM_MOVEABLE,strSelAll.GetLength()+1);
//在堆上分配可移动的内存块,程序返回一个内存句柄
char * buff; //定义指向字符型的指针变量
buff=(char*)GlobalLock(hClip);
//对分配的内存块进行加锁,将内存块句柄转化成一个指针,并将相应的引用计数器加1
strcpy(buff,strSelAll);
//将用户输入的数据复制到指针变量中,实际上就是复制到分配的内存块中
GlobalUnlock(hClip);
//数据写入完毕,进行解锁操作,并将引用计数器数字减1
SetClipboardData(CF_TEXT,hClip);
//将存放有数据的内存块放入剪贴板的资源管理中
CloseClipboard();
//关闭剪贴板,释放剪贴板资源的占用权
GlobalFree(hClip);
}
if(0 == nCount) return;
CArray<int,int> aryListBoxSel;
// 数组用来保存选择的项目的索引
aryListBoxSel.SetSize(nCount);
GetSelItems(nCount, aryListBoxSel.GetData());
CString strSelAll=_T("");
CString strText;
for(int i=0; i<nCount; i++){
int nIndex = aryListBoxSel.GetAt(i); // 取得选择的项目的索引
GetText(nIndex,strText); // 根据索引获得选择的字符串
strSelAll += strText;
strSelAll += _T("\r\n");
}
// 复制到剪贴板
HGLOBAL hClip;
//定义一个HGLOBAL句柄变量用来指向分配的内存块
if (OpenClipboard())
{
EmptyClipboard(); //将剪贴板内容清空
hClip=GlobalAlloc(GMEM_MOVEABLE,strSelAll.GetLength()+1);
//在堆上分配可移动的内存块,程序返回一个内存句柄
char * buff; //定义指向字符型的指针变量
buff=(char*)GlobalLock(hClip);
//对分配的内存块进行加锁,将内存块句柄转化成一个指针,并将相应的引用计数器加1
strcpy(buff,strSelAll);
//将用户输入的数据复制到指针变量中,实际上就是复制到分配的内存块中
GlobalUnlock(hClip);
//数据写入完毕,进行解锁操作,并将引用计数器数字减1
SetClipboardData(CF_TEXT,hClip);
//将存放有数据的内存块放入剪贴板的资源管理中
CloseClipboard();
//关闭剪贴板,释放剪贴板资源的占用权
GlobalFree(hClip);
}
相关文章推荐
- DataGridView选择的内容拷贝至剪贴板代码
- PJ-Blog教程┊增强博客用户体验~让发表内容的同时拷贝到剪贴板以防丢失
- TCppWebBrowser显示的网页内容不能拷贝到剪贴板
- 利用JavaScript实现拷贝内容到剪贴板
- 在FLEX中,拷贝文本内容到剪贴板.
- C++教你用代码实现把拷贝的内容放到剪贴板。
- PJ-Blog教程┊增强博客用户体验~让发表内容的同时拷贝到剪贴板以防丢失
- C#实现windows form拷贝内容到剪贴板的方法
- ZeroClipboard.js复制内容到剪贴板(跨浏览器)
- uboot下emmc内容烧写(拷贝)步骤
- C# 拷贝文件夹A内的所有内容到B内
- 【原】 COCOS2D—LUA 获取剪贴板内容
- Zclip复制页面内容到剪贴板兼容各浏览器
- qt 之拷贝文件夹内容到另外一个文件夹
- 用APPLOC挂载的程序如何拷贝剪贴板
- 最终实现混合app仿淘宝app自动识别淘口令 第二篇 从后台转到前台时自动识别剪贴板内容
- JS实现获取剪贴板内容的方法
- JS实现获取剪贴板内容的方法
- iOS 将内容复制到剪贴板内方法
- Delphi 从PaintBox拷贝一部分内容到TBitmap