我在MFC上运行应用程序,我遇到了CListCtrl控制器的问题,希望我用它来创建列表控件! 因此,当我将该代码用于我的函数ViewALL(用于测试)时,一切正常:
void CFactureView::ViewALL()
{
int i = 0 ;
m_FactureList.DeleteAllItems();
m_FactureList.InsertItem(i,_T("TEST"));
m_FactureList.SetItemText(i,1,_T("TEST"));
m_FactureList.SetItemText(i,2,_T("TEST"));
m_FactureList.SetItemText(i,3,_T("TEST"));
m_FactureList.SetItemText(i,4,_T("TEST"));
m_FactureList.SetItemText(i,5,_T("TEST"));
m_FactureList.SetItemText(i,6,_T("TEST"));
m_FactureList.SetItemText(i,7,_T("TEST"));
m_FactureList.SetItemText(i,8,_T("TEST"));
m_FactureList.SetItemText(i,9,_T("TEST"));
}
但有了这个,没有发生任何事情:
m_FactureList
是我的控制器的名称。
void CFactureView::ViewALL()
{
m_FactureList.DeleteAllItems();
int i = 0 ;
CString annee, mois, imp, reg, bilan ;
//Parcourir la liste des factures
for(std::list<CInfoFacture>::iterator it=GetDocument()->m_listFacture.begin();
it!=GetDocument()->m_listFacture.end(); it++)
{
annee.Format(_T("%d"),it->m_Date.m_Annee);
mois.Format(_T("%d"),it->m_Date.m_Mois);
imp.Format(_T("%.*f"),2,it->m_MontantIMP);
reg.Format(_T("%.*f"),2,it->m_MontantREG);
bilan.Format(_T("%.*f"),2,it->m_Bilan);
m_FactureList.InsertItem(i,it->pAdmin->m_MonCentre->m_nomCentre);
m_FactureList.SetItemText(i,1,it->pAdmin->m_nomAdmin);
m_FactureList.SetItemText(i,2,it->m_Police);
m_FactureList.SetItemText(i,3,annee);
m_FactureList.SetItemText(i,4,mois);
m_FactureList.SetItemText(i,5,it->m_NumFacture);
m_FactureList.SetItemText(i,6,imp);
m_FactureList.SetItemText(i,7,reg);
m_FactureList.SetItemText(i,8,it->m_Bons);
m_FactureList.SetItemText(i,9,bilan);
i++;
}
}
m_listFacture
是我用来存储信息的列表愿望(CInfoFacture
类)
该列表在CFactureDoc
(CDocument
类)中声明:
class CFactureDoc : public CDocument
{
protected: // création à partir de la sérialisation uniquement
CFactureDoc();
DECLARE_DYNCREATE(CFactureDoc)
// Attributs
public:
std::list<CCentre> m_listCentre; // Listes des centres
std::list<CAdministration> m_listAdmin; // Listes des administrations
std::list<CInfoFacture> m_listFacture; // Listes des factures
// Opérations
// Extra code here !
//
}