双击ListCtrl中某一行后,怎么得到当前的内容
RT,多谢了,另外问一句,一个_variant_t类型的变量怎么赋值为空?
[解决办法]
CString strTemp;
int nSelRows = m_List1.GetSelectedCount();
if(!nSelRows)
return;
POSITION pos = m_List1.GetFirstSelectedItemPosition();
//-- Get the index of next selected row
m_selRow = m_List1.GetNextSelectedItem(pos);
TRACE( "First Item %d\n ", m_selRow);
while (m_selRow != -1){
strTemp = m_List1.GetItemText(m_selRow, 0);
strTemp = m_List1.GetItemText(m_selRow, 1);
strTemp = m_List1.GetItemText(m_selRow, 2);
........................
m_selRow = m_List1.GetNextSelectedItem(pos);
TRACE( "Next Item %d\n ",m_selRow);
}
return;
[解决办法]
1.http://blog.chinaunix.net/u/5391/showart.php?id=203465这个里面 有比较全的listctrl的使用说明,可以参看.
例外可以上www.vchome.net也有这个控件的详细使用说明
2._variant_t vt;
vt.clear.
[解决办法]
编程思路:
1、获得用户双击行的索引号,这个索引号是以0开头的;
int nIndex = m_ListCtrl.GetNextItem( -1, LVNI_SELECTED );
2、根据行索引号,取得你需要的列的内容;
CString strValue;
strValue = m_ListCtrl.GetItemText( nIndex, 0 );
注意,上边函数第一个参数为行索引号,第二个参数为列索引号,0 表示第一列。
3、把以上代码放入 ListCtrl 控件的双击事件中;
注意:在获得行索引号时,需要判断一下返回值,如果为 -1 ,则表示当前没有选中的行。
还有一种方法,就是双击事件会把双击的行索引号传进来,然后取得指定列的内容。
2楼发的链接比较全面。
[解决办法]
http://support.microsoft.com/kb/q147842/
把NM_CLICK替换为NM_DBLCLICK即可。
[解决办法]
借问一下:如果是列表框中是目录文件,双击怎么启动一个对应的程序?