b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

cimagelist_imagelist如何显示图片_imagelist 图片大小(3)

电脑杂谈  发布时间:2017-03-08 00:03:01  来源:网络整理

条款六:点击列表框,获取选中行信息

响应NM_CLICK消息,如果你有MSDN,可以看到,有专门关于listview的NM_CLICK的介绍

void CMyDlg::OnItemClick(NMHDR* pNMHDR, LRESULT* pResult)

{

// TODO: Add your control notification handler code here

int nItem = -1;

LPNMITEMACTIVATE lpNMItemActivate = (LPNMITEMACTIVATE)pNMHDR;

if(lpNMItemActivate != NULL)

{

nItem = lpNMItemActivate->iItem;

}

}

现在nItem就是点击选中那行的index了,有了index,获取那行的信息还难吗

懒汉说:难,因为你还没讲,晕,那就继续说

条款七:根据行的index,获取该行的信息

直接上代码吧

LV_ITEM lvitem = {0};

lvitem.iItem = nIndex;

lvitem.iSubItem = 0;

lvitem.mask = LVIF_TEXT|LVIF_IMAGE|LVIF_PARAM;

m_listctrl.GetItem(&lvitem)

这样,就把nindex,第一列的信息取出来了,包括刚才我们加入的ICON,和那个额外信息(窗口句柄),比如我要获取窗口句柄,就可以hwnd = (HWND)lvitem.lParam;

mask 用来指明你想获取那些信息

具体可以查msdn中LVITEM Structure的定义和CListCtrl::GetItem

条款八:用程序选中某一行,使之选中

选中之

m_listctrl.SetItemState(nIndex,LVIS_SELECTED|LVIS_FOCUSED,LVIS_SELECTED|LVIS_FOCUSED);

不选中,取消选中之

m_listctrl.SetItemState(nIndex,0,LVIS_SELECTED|LVIS_FOCUSED);

条款九:获取当前所有选中的行(多选)

这个,俺就比较懒了,抄msdn的代码吧,反正很简单

// CListCtrl* pListCtrl = (CListCtrl*) GetDlgItem

(IDC_YOURLISTCONTROL);

ASSERT(pListCtrl != NULL);

POSITION pos = pList->GetFirstSelectedItemPosition();

if (pos == NULL)

TRACE0("No items were selected!\n");

else

{

while (pos)

{

int nItem = pList->GetNextSelectedItem(pos);

TRACE1("Item %d was selected!\n", nItem);

// you could do your own processing on nItem here

}

}

条款十:删除条款九中选中的行

这个相对前面九个条款是比较麻烦的,因为如果你要删除多行的话,往往要出错。比如,我现在要删除第0行和第1行(列表的行序列是从0开始的)

那么好啊。我来删了

m_listctrl.DeleteItem(0)

m_listctrl.DeleteItem(1)

恭喜你,错了,我好开心啊:)


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-36345-3.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 路凯文
      路凯文

      德国总理将访华

    • 周健
      周健

      福喜都不知道把肉送去检测太单纯了

    热点图片
    拼命载入中...