CListCtrl* pListCtrl = (CListCtrl*)GetDlgItem(IDC_CATEGORY_LISTBOX);
LVITEM lvitem;
lvitem.mask = LVIF_TEXT;
lvitem.iItem = pListCtrl->GetItemCount();
lvitem.iSubItem = 0;
lvitem.pszText = "Name";
pListCtrl->SetItem(&lvitem);
int i = pListCtrl->InsertItem(&lvitem);
pListCtrl->SetItemText(i,0,m_strName.GetBuffer(64));
pListCtrl->SetItemText(i,1,m_strFileType.GetBuffer(64));
pListCtrl->SetItemText(i,2,m_strSaveDirectory.GetBuffer(64));
可每次中保错
请高手帮帮忙!!
10 个解决方案
#1
没人回答吗?
#2
void CLoginPage::AddLogList(long id, char *name, long loginfo,int n)
{
char ch[32];
sprintf(ch,"%x",id);
//先插入一个Item再说
int iActualItem = m_list.InsertItem(n,ch);
LVITEM item;
item.iItem = iActualItem;
item.mask = LVIF_TEXT;
item.pszText = ch;
item.cchTextMax=32;
strcpy(item.pszText,name);
item.iSubItem = 1;
//修改它的SubItem的Text值
m_list.SetItem(&item);
switch(loginfo)
{
case 0:
strcpy(item.pszText,"login");
break;
case 1:
strcpy(item.pszText,"logout");
break;
case 2:
strcpy(item.pszText,"reconnect");
break;
}
item.iSubItem = 2;
//修改它的SubItem的Text值
m_list.SetItem(&item);
}
{
char ch[32];
sprintf(ch,"%x",id);
//先插入一个Item再说
int iActualItem = m_list.InsertItem(n,ch);
LVITEM item;
item.iItem = iActualItem;
item.mask = LVIF_TEXT;
item.pszText = ch;
item.cchTextMax=32;
strcpy(item.pszText,name);
item.iSubItem = 1;
//修改它的SubItem的Text值
m_list.SetItem(&item);
switch(loginfo)
{
case 0:
strcpy(item.pszText,"login");
break;
case 1:
strcpy(item.pszText,"logout");
break;
case 2:
strcpy(item.pszText,"reconnect");
break;
}
item.iSubItem = 2;
//修改它的SubItem的Text值
m_list.SetItem(&item);
}
#3
Setitem和Setitemtext的区别能说一下吗?
#4
SetItem 可修改ITEM的属性
SetItemText只能设定其中的字符
CListCtrl* pListCtrl = (CListCtrl*)GetDlgItem(IDC_CATEGORY_LISTBOX);
LVITEM lvitem;
lvitem.mask = LVIF_TEXT;
lvitem.iItem = pListCtrl->GetItemCount();
lvitem.iSubItem = 0;
lvitem.pszText = "Name";
??????????pListCtrl->SetItem(&lvitem);
?? 出错!
int i = pListCtrl->InsertItem(&lvitem);
pListCtrl->SetItemText(i,0,m_strName.GetBuffer(64));
pListCtrl->SetItemText(i,1,m_strFileType.GetBuffer(64));
pListCtrl->SetItemText(i,2,m_strSaveDirectory.GetBuffer(64));
您可以使用
for( i = 0 ; i < ?? ; i ++ )
{
InsertItem(i);
SetItemText(i,0,"hello");
SetItemText(i,1,"hello");
}
试试
SetItemText只能设定其中的字符
CListCtrl* pListCtrl = (CListCtrl*)GetDlgItem(IDC_CATEGORY_LISTBOX);
LVITEM lvitem;
lvitem.mask = LVIF_TEXT;
lvitem.iItem = pListCtrl->GetItemCount();
lvitem.iSubItem = 0;
lvitem.pszText = "Name";
??????????pListCtrl->SetItem(&lvitem);
?? 出错!
int i = pListCtrl->InsertItem(&lvitem);
pListCtrl->SetItemText(i,0,m_strName.GetBuffer(64));
pListCtrl->SetItemText(i,1,m_strFileType.GetBuffer(64));
pListCtrl->SetItemText(i,2,m_strSaveDirectory.GetBuffer(64));
您可以使用
for( i = 0 ; i < ?? ; i ++ )
{
InsertItem(i);
SetItemText(i,0,"hello");
SetItemText(i,1,"hello");
}
试试
#5
deng hui er lai kan
#6
一样出错
:(
:(
#7
直接insertitem();来插入每行的头节点,
然后setitemtext设置每一行中子节点,
显示输出的话用不着setitem();你都没有插入节就setitem()当然出错了
然后setitemtext设置每一行中子节点,
显示输出的话用不着setitem();你都没有插入节就setitem()当然出错了
#8
说句实话您的错误很怪,以至于当我刚看到你的程序时一时也拿不准您的错误究竟在何处。看了那些好心的朋友给您提的意见和方法后我就更
加迷糊了。最后我只好按照你提供的程序重新编了一个程序才发现错误。首先你没有弄清各控件的功能。系统提供了两种列表控件一个是
CListBox,另一个是CListCtrl。CListBox提供的功能很简单,只能显示某个项的列表,用AddString()就可以向列表框加入字符串。
CListCtrl提供的功能就相对丰富,它能显示图标视图,小图标视图,列表视图和报告试图。从您的程序代码来看,我判断你是想用CListCtrl
控件,但从你调用ID的方式来看(CListCtrl* pListCtrl = (CListCtrl*)GetDlgItem(IDC_CATEGORY_LISTBOX);),我又觉得你是在用
CListBox控件。如果你真的是在用CListBox控件的话,那就真是错了十万八千里了,因为CListBox根本就无法显示头标和子项这些东西。应该
用CListCtrl控件。如果你本来就是用CListCtl控件的,那我向您道歉。但是您的程序代码仍然有错,您忘了用InsertColumn()加入列了,如果
不用该函数加入列,就根本没法显示项和子项了。CLlistCtrl控件通常显示的是图标视图,如果你想显示子项,必须换成报告视图。简单的方
法是在CListCtrl控件的属性中选Style选项,再将Icon改成Report.下面的程序是我在对话框的OnInitDialog()函数中初始化CListCtrl控件的
代码。
BOOL CListDlg::OnInitDialog()
{
CDialog::OnInitDialog();
//简单期间随便附个初值
CString m_strName = _T("my name");
CString m_strFileType = _T("new book");
CString m_strSaveDirectory =_T("trouble");
CListCtrl* pListCtrl = (CListCtrl*)GetDlgItem(IDC_LISTVIEW);
LVITEM lvitem;
lvitem.mask = LVIF_TEXT;
lvitem.iItem = pListCtrl->GetItemCount();
lvitem.iSubItem = 0;
lvitem.pszText = "Name";
//向视图中加入列
pListCtrl->InsertColumn(0,"one",LVCFMT_LEFT,10);
pListCtrl->InsertColumn(1,"two",LVCFMT_LEFT,20);
pListCtrl->InsertColumn(2,"three",LVCFMT_LEFT,30);
pListCtrl->InsertColumn(3,"four",LVCFMT_LEFT,40);
pListCtrl->SetItem(&lvitem);
//加入项
int i = pListCtrl->InsertItem(0,"NEW");
//加入子项
pListCtrl->SetItemText(i,1,m_strName);
pListCtrl->SetItemText(i,2,m_strFileType);
pListCtrl->SetItemText(i,3,m_strSaveDirectory);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
#9
kkk007(dernier) 你好!
很感谢你的细心
控件这方面,我搞得不是很好,因为我只学了VC半年
但学了太多的东西,所以都不是很精通
能不能我们交个朋友,把你得email给我可以吗?
很感谢你的细心
控件这方面,我搞得不是很好,因为我只学了VC半年
但学了太多的东西,所以都不是很精通
能不能我们交个朋友,把你得email给我可以吗?
#10
当一个人的劳动成果能被他人认同时这是最大的回报。很高兴能和你交朋友,不过我也是个新手。dernier_premier@yahoo.com.cn是我的电子邮件,恭候您的回音
#1
没人回答吗?
#2
void CLoginPage::AddLogList(long id, char *name, long loginfo,int n)
{
char ch[32];
sprintf(ch,"%x",id);
//先插入一个Item再说
int iActualItem = m_list.InsertItem(n,ch);
LVITEM item;
item.iItem = iActualItem;
item.mask = LVIF_TEXT;
item.pszText = ch;
item.cchTextMax=32;
strcpy(item.pszText,name);
item.iSubItem = 1;
//修改它的SubItem的Text值
m_list.SetItem(&item);
switch(loginfo)
{
case 0:
strcpy(item.pszText,"login");
break;
case 1:
strcpy(item.pszText,"logout");
break;
case 2:
strcpy(item.pszText,"reconnect");
break;
}
item.iSubItem = 2;
//修改它的SubItem的Text值
m_list.SetItem(&item);
}
{
char ch[32];
sprintf(ch,"%x",id);
//先插入一个Item再说
int iActualItem = m_list.InsertItem(n,ch);
LVITEM item;
item.iItem = iActualItem;
item.mask = LVIF_TEXT;
item.pszText = ch;
item.cchTextMax=32;
strcpy(item.pszText,name);
item.iSubItem = 1;
//修改它的SubItem的Text值
m_list.SetItem(&item);
switch(loginfo)
{
case 0:
strcpy(item.pszText,"login");
break;
case 1:
strcpy(item.pszText,"logout");
break;
case 2:
strcpy(item.pszText,"reconnect");
break;
}
item.iSubItem = 2;
//修改它的SubItem的Text值
m_list.SetItem(&item);
}
#3
Setitem和Setitemtext的区别能说一下吗?
#4
SetItem 可修改ITEM的属性
SetItemText只能设定其中的字符
CListCtrl* pListCtrl = (CListCtrl*)GetDlgItem(IDC_CATEGORY_LISTBOX);
LVITEM lvitem;
lvitem.mask = LVIF_TEXT;
lvitem.iItem = pListCtrl->GetItemCount();
lvitem.iSubItem = 0;
lvitem.pszText = "Name";
??????????pListCtrl->SetItem(&lvitem);
?? 出错!
int i = pListCtrl->InsertItem(&lvitem);
pListCtrl->SetItemText(i,0,m_strName.GetBuffer(64));
pListCtrl->SetItemText(i,1,m_strFileType.GetBuffer(64));
pListCtrl->SetItemText(i,2,m_strSaveDirectory.GetBuffer(64));
您可以使用
for( i = 0 ; i < ?? ; i ++ )
{
InsertItem(i);
SetItemText(i,0,"hello");
SetItemText(i,1,"hello");
}
试试
SetItemText只能设定其中的字符
CListCtrl* pListCtrl = (CListCtrl*)GetDlgItem(IDC_CATEGORY_LISTBOX);
LVITEM lvitem;
lvitem.mask = LVIF_TEXT;
lvitem.iItem = pListCtrl->GetItemCount();
lvitem.iSubItem = 0;
lvitem.pszText = "Name";
??????????pListCtrl->SetItem(&lvitem);
?? 出错!
int i = pListCtrl->InsertItem(&lvitem);
pListCtrl->SetItemText(i,0,m_strName.GetBuffer(64));
pListCtrl->SetItemText(i,1,m_strFileType.GetBuffer(64));
pListCtrl->SetItemText(i,2,m_strSaveDirectory.GetBuffer(64));
您可以使用
for( i = 0 ; i < ?? ; i ++ )
{
InsertItem(i);
SetItemText(i,0,"hello");
SetItemText(i,1,"hello");
}
试试
#5
deng hui er lai kan
#6
一样出错
:(
:(
#7
直接insertitem();来插入每行的头节点,
然后setitemtext设置每一行中子节点,
显示输出的话用不着setitem();你都没有插入节就setitem()当然出错了
然后setitemtext设置每一行中子节点,
显示输出的话用不着setitem();你都没有插入节就setitem()当然出错了
#8
说句实话您的错误很怪,以至于当我刚看到你的程序时一时也拿不准您的错误究竟在何处。看了那些好心的朋友给您提的意见和方法后我就更
加迷糊了。最后我只好按照你提供的程序重新编了一个程序才发现错误。首先你没有弄清各控件的功能。系统提供了两种列表控件一个是
CListBox,另一个是CListCtrl。CListBox提供的功能很简单,只能显示某个项的列表,用AddString()就可以向列表框加入字符串。
CListCtrl提供的功能就相对丰富,它能显示图标视图,小图标视图,列表视图和报告试图。从您的程序代码来看,我判断你是想用CListCtrl
控件,但从你调用ID的方式来看(CListCtrl* pListCtrl = (CListCtrl*)GetDlgItem(IDC_CATEGORY_LISTBOX);),我又觉得你是在用
CListBox控件。如果你真的是在用CListBox控件的话,那就真是错了十万八千里了,因为CListBox根本就无法显示头标和子项这些东西。应该
用CListCtrl控件。如果你本来就是用CListCtl控件的,那我向您道歉。但是您的程序代码仍然有错,您忘了用InsertColumn()加入列了,如果
不用该函数加入列,就根本没法显示项和子项了。CLlistCtrl控件通常显示的是图标视图,如果你想显示子项,必须换成报告视图。简单的方
法是在CListCtrl控件的属性中选Style选项,再将Icon改成Report.下面的程序是我在对话框的OnInitDialog()函数中初始化CListCtrl控件的
代码。
BOOL CListDlg::OnInitDialog()
{
CDialog::OnInitDialog();
//简单期间随便附个初值
CString m_strName = _T("my name");
CString m_strFileType = _T("new book");
CString m_strSaveDirectory =_T("trouble");
CListCtrl* pListCtrl = (CListCtrl*)GetDlgItem(IDC_LISTVIEW);
LVITEM lvitem;
lvitem.mask = LVIF_TEXT;
lvitem.iItem = pListCtrl->GetItemCount();
lvitem.iSubItem = 0;
lvitem.pszText = "Name";
//向视图中加入列
pListCtrl->InsertColumn(0,"one",LVCFMT_LEFT,10);
pListCtrl->InsertColumn(1,"two",LVCFMT_LEFT,20);
pListCtrl->InsertColumn(2,"three",LVCFMT_LEFT,30);
pListCtrl->InsertColumn(3,"four",LVCFMT_LEFT,40);
pListCtrl->SetItem(&lvitem);
//加入项
int i = pListCtrl->InsertItem(0,"NEW");
//加入子项
pListCtrl->SetItemText(i,1,m_strName);
pListCtrl->SetItemText(i,2,m_strFileType);
pListCtrl->SetItemText(i,3,m_strSaveDirectory);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
#9
kkk007(dernier) 你好!
很感谢你的细心
控件这方面,我搞得不是很好,因为我只学了VC半年
但学了太多的东西,所以都不是很精通
能不能我们交个朋友,把你得email给我可以吗?
很感谢你的细心
控件这方面,我搞得不是很好,因为我只学了VC半年
但学了太多的东西,所以都不是很精通
能不能我们交个朋友,把你得email给我可以吗?
#10
当一个人的劳动成果能被他人认同时这是最大的回报。很高兴能和你交朋友,不过我也是个新手。dernier_premier@yahoo.com.cn是我的电子邮件,恭候您的回音