两种方法,为什么一种可以一种不可以?
我想用ListCtrl显示一个RecordSet中的内容。(前提:我已执行了ListCtrl.InsertColumn设置列)
方法一:(不能显示内容)
CListItem *pli = new CListItem;
//CListItem的定义为:
//class CListItem {
// public :
//string au_id,au_name,address,city,state,zip;
// };
pli->au_id=(char *) (_bstr_t)pRs->Fields->GetItem("au_id")->Value;
pli->au_name=(char *) (_bstr_t)pRs->Fields->GetItem("au_lname")->Value;
pli->au_name+=",";
pli->au_name+=(char *) (_bstr_t)pRs->Fields->GetItem("au_fname")->Value;
pli->address=(char *) (_bstr_t)pRs->Fields->GetItem("address")->Value;
pli->city=(char *) (_bstr_t)pRs->Fields->GetItem("city")->Value;
pli->state=(char *) (_bstr_t)pRs->Fields->GetItem("state")->Value;
pli->zip=(char *) (_bstr_t)pRs->Fields->GetItem("zip")->Value;
LVITEM Item;
Item.lParam =(LPARAM) pli;
Item.pszText = LPSTR_TEXTCALLBACK;
Item.mask =LVIF_TEXT|LVIF_PARAM;
Item.iItem =iItem;//为项目索引
Item.iSubItem =0;
m_ListCtrl.InsertItem(&Item);
方法二:(可以显示内容)
CString str;
str=(char *)(_bstr_t)pRs->Fields->GetItem("au_lname")->Value;
str+=",";
str+=(char *) (_bstr_t)pRs->Fields->GetItem("au_fname")->Value;
m_ListCtrl.InsertItem(iItem,(char *) (_bstr_t)pRs->Fields->GetItem("au_id")->Value); //iItem//为
项目索引
m_ListCtrl.SetItemText(iItem,1,str);
m_ListCtrl.SetItemText(iItem,2,(char *) (_bstr_t)pRs->Fields->GetItem("address")->Value);
m_ListCtrl.SetItemText(iItem,3,(char *) (_bstr_t)pRs->Fields->GetItem("city")->Value);
m_ListCtrl.SetItemText(iItem,4,(char *) (_bstr_t)pRs->Fields->GetItem("state")->Value);
m_ListCtrl.SetItemText(iItem,5,(char *) (_bstr_t)pRs->Fields->GetItem("zip")->Value);
谁能告诉我,为什么第一种方法不行。
以上两种法在Dialog::OnInitDialog()中执行的.