列表框List Box/Check List Box 不显示第二列的内容

修改方法: 

DWORD dwStyle=GetWindowLong(m_list.m_hWnd,GWL_STYLE);
 SetWindowLong(m_list.m_hWnd,GWL_STYLE,dwStyle|LVS_REPORT);
 DWORD styles=m_list.GetExtendedStyle();
 m_list.SetExtendedStyle(styles|LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
 TCHAR *rgtsz[2]={_T("Name"),_T("Address")};
 LV_COLUMN lvcolumn;
 CRect m_rect;
 m_list.GetWindowRect(&m_rect);
 for (int i=0;i<2;i++)
 {
  lvcolumn.mask=LVCF_FMT|LVCF_SUBITEM|LVCF_TEXT|LVCF_WIDTH|LVCF_ORDER;
  lvcolumn.fmt=LVCFMT_LEFT;
  lvcolumn.pszText=rgtsz[i];
  lvcolumn.iSubItem=i;
  lvcolumn.iOrder=i;
  if (i==0)
  {
   for (int j=0;j<2;j++)
   {
    lvcolumn.cx=m_rect.Width()/2+21;
   } 
  }
  else
  {
   for (int j=0;j<2;j++)
   {
    lvcolumn.cx=360;
   }
  }
  m_list.InsertColumn(i,&lvcolumn);
 }

应该把列表框的初始化放到最前面;

 

 

 for(int k=0;k<m_vSaveLink.size();k++)
 { 
  m_list.InsertItem(k,m_vSaveLink[k]->strName);
  m_list.SetItemText(k,1,m_vSaveLink[k]->strValue);
 }   第二列有的行不显示,换成:

    int n=m_list.InsertItem(k,m_vSaveLink[k]->strName);
    m_list.SetItemText(n,1,m_vSaveLink[k]->strValue); 

就显示了!

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(list,report,360,styles)