请问CListCtrl的风格,比如我现在要显示数据库中的内容,应该怎样设置,能给我一段实例的代码吗?
一般来CListCtrl应该是什么风格呢?

解决方案 »

  1.   


    void CQuery::QueryDB(CString strSQL)
    {
    _CommandPtr pCommand;
    _RecordsetPtr m_pSet;
    pCommand.CreateInstance(__uuidof(Command));
    pCommand->ActiveConnection=m_pConnection; 
    /////////////////////////////////////////////////////////
    CString m_strSQL;
    m_strSQL.Format("select COUNT(*) from score %s",strSQL);
    pCommand->CommandText=(_bstr_t)m_strSQL;
    pCommand->CommandType=adCmdText; try
    {
    pCommand->Parameters->Refresh();
    m_pSet=pCommand->Execute(NULL,NULL,adCmdUnknown);
    }
    catch(_com_error e)///捕捉异常
    {
    CString errormessage;
    errormessage.Format("错误信息:%s",e.ErrorMessage());
    AfxMessageBox(errormessage);///显示错误信息
    }  _variant_t vIndex = (long)0;
    _variant_t vCount = m_pSet->GetCollect(vIndex);///取得第一个字段的值放入vCount变量
    g_ItemCount=vCount.lVal;
    /////////////////////////////////////////////////////////
    m_strSQL.Format("select * from score %s",strSQL);
    pCommand->CommandText=(_bstr_t)m_strSQL; pCommand->CommandType=adCmdText; try
    {
    pCommand->Parameters->Refresh();
    m_pSet=pCommand->Execute(NULL,NULL,adCmdUnknown);
    }
    catch(_com_error e)///捕捉异常
    {
    CString errormessage;
    errormessage.Format("错误信息:%s",e.ErrorMessage());
    AfxMessageBox(errormessage);///显示错误信息
    }
    CScoreView* pView=static_cast<CScoreView*>(p);
    pView->m_list.DeleteAllItems(); if(g_ItemCount==0)
    {
    return;
    }

    m_pSet->MoveFirst();
    for(DWORD i=0;i<g_ItemCount;i++)
    {
    _bstr_t t1=(_bstr_t)m_pSet->GetCollect("微分");
    _bstr_t t2=(_bstr_t)m_pSet->GetCollect("英IV");
    _bstr_t t3=(_bstr_t)m_pSet->GetCollect("概率");
    _bstr_t t4=(_bstr_t)m_pSet->GetCollect("数模");
    _bstr_t t5=(_bstr_t)m_pSet->GetCollect("数据");
    _bstr_t t6=(_bstr_t)m_pSet->GetCollect("马经");
    _bstr_t t7=(_bstr_t)m_pSet->GetCollect("数3");
    _bstr_t t8=(_bstr_t)m_pSet->GetCollect("离散");
    _bstr_t t9=(_bstr_t)m_pSet->GetCollect("物2");
    _bstr_t t10=(_bstr_t)m_pSet->GetCollect("英3");
    _bstr_t t11=(_bstr_t)m_pSet->GetCollect("物实");
    _bstr_t t12=(_bstr_t)m_pSet->GetCollect("马哲");
    _bstr_t t13=(_bstr_t)m_pSet->GetCollect("德育");
    _bstr_t t14=(_bstr_t)m_pSet->GetCollect("平均分");
    _bstr_t t15=(_bstr_t)m_pSet->GetCollect("学分绩");

    pView->m_list.InsertItem(i,(char*)(_bstr_t)m_pSet->GetCollect("ID"));
    pView->m_list.SetItemText(i,1,(char*)(_bstr_t)m_pSet->GetCollect("姓名"));
    pView->m_list.SetItemText(i,2,t1);
    pView->m_list.SetItemText(i,3,t2);
    pView->m_list.SetItemText(i,4,t3);
    pView->m_list.SetItemText(i,5,t4);
    pView->m_list.SetItemText(i,6,t5);
    pView->m_list.SetItemText(i,7,t6);
    pView->m_list.SetItemText(i,8,t7);
    pView->m_list.SetItemText(i,9,t8);
    pView->m_list.SetItemText(i,10,t9);
    pView->m_list.SetItemText(i,11,t10);
    pView->m_list.SetItemText(i,12,t11);
    pView->m_list.SetItemText(i,13,t12);
    pView->m_list.SetItemText(i,14,t13);
    pView->m_list.SetItemText(i,15,t14);
    pView->m_list.SetItemText(i,16,t15);

    m_pSet->MoveNext();
    }
    }
      

  2.   

    m_list.SetExtendedStyle(m_DefineURL.GetExtendedStyle( )|LVS_EX_GRIDLINES|LVS_EX_CHECKBOXES | LVS_EX_FULLROWSELECT);//风格 LV_COLUMN lvColunm;//插入列头
    lvColunm.mask=LVCF_TEXT|LVCF_FMT|LVCF_WIDTH;
    lvColunm.fmt=LVCFMT_CENTER;
    lvColunm.cx=150;
    lvColunm.pszText="";
    m_list.InsertColumn(0,&lvColunm);
    lvColunm.cx=250;
    lvColunm.pszText="";
    m_list.InsertColumn(1,&lvColunm); m_list.InsertItem(nListIndex,"title");//插入操作
    m_list.SetItemText(nListIndex++,1,"单击可进行修改");
      

  3.   

    如上所说,一般采用report风格
    一般是3个步骤
    1先画好框架
        m_listctrl.InsertColumn(0, "编号", LVCFMT_LEFT, 60);//0表示第1列
    m_listctrl.InsertColumn(1, "服务项目", LVCFMT_LEFT, 150);
    2插入数据
             m_listctrl.InsertItem(LVIF_TEXT|LVIF_STATE, i, str, LVIS_SELECTED|LVIS_FOCUSED, LVIS_SELECTED|LVIS_FOCUSED, 0, 0);//这是数据行的第1列
    //有别于其他列
    3
             m_listctrl.SetItemText(i,1,sevname);//第i行,第1+1列,i与上面的i一致如果要更多行和列,依次添加就行