在Dialog中添加一个ListCtrl,两个问题。
1.在OnInitDialog()中,添加多列。
  m_ListCtrl.InsertItem(i,code,0);
  m_ListCtrl.SetItemText(i,1,account);
  程序运行时为什么只能反向显示code项,account项不能反向显示。
2.如何得到鼠标选中时的列号。我用如下方法不行。
void CModifyCustomerInfoDlg::OnClickList(NMHDR* pNMHDR, LRESULT* pResult) 
{
// TODO: Add your control notification handler code here
CPoint point;
unsigned int col=0,sel=0;
CString cs; sel = m_ListCtrl.HitTest(point,&col); if (col & LVHT_ONITEMLABEL)
{
cs.Format("sel=%d,col=%d",sel,col);
MessageBox(cs,NULL,MB_OK);
} *pResult = 0;
}

解决方案 »

  1.   

    CurSel = m_ctlFieldList.GetNextItem( -1, LVNI_ALL | LVNI_SELECTED);//得到当前的选项
      

  2.   

    1.用LVM_SETEXTENDEDLISTVIEWSTYLE消息添加LVS_EX_FULLROWSELECT的扩展List Control风格。
    2.List Control只能以行为基础进行选择,它没有Column选择的概念。
      

  3.   

    1、listctrl是缺省sort第一列的。
    2、只能通过mouse的point判断了。
      

  4.   

    将下面代码加入OnInitDialog()中
    m_list.SendMessage(LVM_SETEXTENDEDLISTVIEWSTYLE,LVS_EX_FULLROWSELECT, LVS_EX_FULLROWSELECT);