在程序中new了一个CListCtrl控件,用create创建窗体,添加item时,用Debug编译出错,用Release编译不显示添加的内容 主要代码如下:(在CView的WM_LButtonDow中)
CListCtrl* plist=new CListCtrl();
CRect rect(0,0,500,200);
plist->Create(LVS_OWNERDRAWFIXED | WS_BORDER | LVS_REPORT | LVS_ALIGNLEFT,rect,this,IDC_LIST1);
plist->InsertColumn(0,"column 1",LVCFMT_LEFT,150,0);
plist->InsertColumn(1,"column 2",LVCFMT_LEFT,150,1); CString temp;
LV_ITEM lvi,lvi2;
lvi.mask=LVIF_TEXT;
lvi.iItem=0;
lvi.iSubItem=0;
lvi.pszText="item 1";
int inx=plist->InsertItem(&lvi);
plist->SetItemText(0,1,"aaaa"); plist->ShowWindow(SW_SHOW);
CListCtrl* plist=new CListCtrl();
CRect rect(0,0,500,200);
plist->Create(LVS_OWNERDRAWFIXED | WS_BORDER | LVS_REPORT | LVS_ALIGNLEFT,rect,this,IDC_LIST1);
plist->InsertColumn(0,"column 1",LVCFMT_LEFT,150,0);
plist->InsertColumn(1,"column 2",LVCFMT_LEFT,150,1); CString temp;
LV_ITEM lvi,lvi2;
lvi.mask=LVIF_TEXT;
lvi.iItem=0;
lvi.iSubItem=0;
lvi.pszText="item 1";
int inx=plist->InsertItem(&lvi);
plist->SetItemText(0,1,"aaaa"); plist->ShowWindow(SW_SHOW);
你没有Insert subitem[1]就去setitemtext了
还有,好像InsertItem有重载
也许我和WTL搞混了.........
我添加了一个类 成员变量 CListCtrl m_list;在处理函数中,添加以下代码:
if(m_list)
m_list.DestroyWindow();CRect rect;
GetClientRect(&rect);
m_list.Create(LVS_REPORT,rect,this,ID_LIST);//ID_LIST为该listctrl的ID号CString str;
int i;
//设置列名
for(i=0;i<3;i++)
{
str.Format("ITEM%d",i);
m_list.InsertColumn(i,str,LVCFMT_LEFT,150);
}//设置item and subitem
LVITEM lv;
for(i=0;i<5;i++)
{
lv.mask = LVIF_TEXT;
lv.iItem = i;
lv.iSubItem = 0;
str.Format("item%d",i);
lv.pszText = (LPTSTR)(LPCTSTR)str;
m_list.InsertItem(&lv); lv.iSubItem = 1;
str.Format("subitem%d",i);
lv.pszText = (LPTSTR)(LPCTSTR)str;
m_list.SetItem(&lv); lv.iSubItem = 2;
str.Format("subitem%d%d",i,i);
lv.pszText = (LPTSTR)(LPCTSTR)str;
m_list.SetItem(&lv);
}你试试看