复制 CListCtrl 的内容 现在可以用CListCtrl把所需要的内容显示出来,当我选择其几行时,我想把这些内容复制出来,请问怎样实现呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1)判断某行是否被选中 for( i = 0; i < ( size_t )( m_list1.GetItemCount() ); i++ ) { if( LVIS_SELECTED == m_list1.GetItemState( i, LVIS_SELECTED ) )2)使用GetItemText来取得listctrl的内容。 我想选择内容后,按Ctrl+C,然后到Excel里,按Ctrl+V,把内容复制出来。 //得到所有选择: int all[10]; int select=m_LBox.GetSelItems(nCount, all);//aryListBoxSel.GetData()); for(int i=0;i <select;i++) { m_LBox.GetText(all[i], str);//aryListBoxSel.GetAt(i); str+="\r\n"; ;//str包含所有选择的text ;file.Write(str,str.GetLength()); } //搞错了,刚才的是listbox,下面的才是listctrl: int selectNo=m_P4ListCtrl.GetSelectedCount(); int nItem=-1; POSITION pos = m_P4ListCtrl.GetFirstSelectedItemPosition(); while (pos) { nItem = m_P4ListCtrl.GetNextSelectedItem(pos); } if(nItem>=0) { LVITEM lvi; lvi.mask=LVIF_TEXT; lvi.iItem=nItem; lvi.iSubItem=0; m_P4ListCtrl.GetItem(&lvi);//lvi 中有text//用一个Cstring 把他们加起来。 } //copy char*allstring=::GlobalAlloc(GMEM_MOVEABLE|GMEM_DDESHARE|GMEM_ZEROINIT,sizeof(1024));// char *pAllstring=(char*)::GlobalLock(allstring);strcpy(pAllstring,你读出的串); SetClipboardData(CF_TEXT,pAllstring);// clip board will delete this ::GlobalUnlock(allstring); CloseClipboard(); POSITION pos = m_list.GetFirstSelectedItemPosition();if(NULL == pos){ AfxMessageBox(_T("No items are selected.\n"));}else{ while(pos) { int nItem = m_list.GetNextSelectedItem(pos); ... // 得到了选中的行号,就可以去需要的信息了 }} 7楼是基本都能在MFC相关版块儿上看到你的身影,而且恢复的都相当的准确,个人比较钦佩 windows服务程序调用dll问题,在线等 如何判断是别的进程在读自已进程的内存? 请问!!! 线程问题 菜鸟问题求教 我做了一个网络编程的小程序(并非木马程序),却被网标认为是非法程序,请问如何才能逃避被类似网标的程序监测应用程序的存在?(在线等待 关于socket多线程互斥锁的问题? 如何关闭shellexecute打开的窗口啊?虽然没分了但是还得问 ;( 附源码 atl/com outlook newInspector event 问题 巨难的调试问题??? 难道真的没有办法从外部中断线程且不造成资源泄漏? 为什么下载不到VC.net2002
for( i = 0; i < ( size_t )( m_list1.GetItemCount() ); i++ )
{
if( LVIS_SELECTED == m_list1.GetItemState( i, LVIS_SELECTED ) )2)使用GetItemText来取得listctrl的内容。
然后到Excel里,按Ctrl+V,把内容复制出来。
int all[10];
int select=m_LBox.GetSelItems(nCount, all);//aryListBoxSel.GetData());
for(int i=0;i <select;i++)
{
m_LBox.GetText(all[i], str);//aryListBoxSel.GetAt(i);
str+="\r\n";
;//str包含所有选择的text ;file.Write(str,str.GetLength());
}
int selectNo=m_P4ListCtrl.GetSelectedCount();
int nItem=-1;
POSITION pos = m_P4ListCtrl.GetFirstSelectedItemPosition();
while (pos)
{
nItem = m_P4ListCtrl.GetNextSelectedItem(pos);
}
if(nItem>=0)
{
LVITEM lvi;
lvi.mask=LVIF_TEXT;
lvi.iItem=nItem;
lvi.iSubItem=0;
m_P4ListCtrl.GetItem(&lvi);//lvi 中有text
//用一个Cstring 把他们加起来。
}
char*allstring=::GlobalAlloc(GMEM_MOVEABLE|GMEM_DDESHARE|GMEM_ZEROINIT,sizeof(1024));//
char *pAllstring=(char*)::GlobalLock(allstring);
strcpy(pAllstring,你读出的串);
SetClipboardData(CF_TEXT,pAllstring);// clip board will delete this
::GlobalUnlock(allstring);
CloseClipboard();
POSITION pos = m_list.GetFirstSelectedItemPosition();
if(NULL == pos)
{
AfxMessageBox(_T("No items are selected.\n"));
}
else
{
while(pos)
{
int nItem = m_list.GetNextSelectedItem(pos);
...
// 得到了选中的行号,就可以去需要的信息了
}
}