CListBox多选并把多选的内容拷贝到剪贴板

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);//对分配的内存块进行加锁,将内存块句柄转化成一个指针,并将相应的引用计数器加1strcpy(buff,strSelAll);//将用户输入的数据复制到指针变量中,实际上就是复制到分配的内存块中GlobalUnlock(hClip);//数据写入完毕,进行解锁操作,并将引用计数器数字减1SetClipboardData(CF_TEXT,hClip);//将存放有数据的内存块放入剪贴板的资源管理中CloseClipboard();//关闭剪贴板,,释放剪贴板资源的占用权GlobalFree(hClip);}

有多远,走多远,把足迹连成生命线。

CListBox多选并把多选的内容拷贝到剪贴板

相关文章:

你感兴趣的文章:

标签云: