原来用下面CListCtrl的代码显示用户是没问题的
void CListCtrlEx::AddItem(short i, char* name, char* text)
{
LVITEM lvi; lvi.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_PARAM;
lvi.iItem = GetItemCount();
lvi.iImage = i;
lvi.iSubItem = 0;
lvi.pszText = name;
lvi.cchTextMax = 64;
lvi.lParam = 0;
InsertItem(&lvi); lvi.mask = LVIF_TEXT;
lvi.pszText = text;
lvi.cchTextMax = 32;
lvi.iSubItem = 1;
SetItem(&lvi);
}
后来我想在显示用户前显示图标,调用和关联代码如下:
m_imglist.Create ( 48, 48, ILC_COLOR16 | ILC_MASK, 4, 1 );
m_imglist.Add (HICON(::LoadImage (AfxGetResourceHandle(), MAKEINTRESOURCE(IDI_THIS),
IMAGE_ICON, 48, 48, LR_DEFAULTCOLOR )));
this->dlgBar.m_userlist.SetImageList ( &m_imglist, LVSIL_SMALL );this->dlgBar.m_userlist.AddItem(0, pStr->from.GetBuffer(0), pStr->ip.GetBuffer(0));
结果登录第一个用户没问题,也可以显示用户图标,但登录第二个用户程序崩溃。为什么?谢谢!!
void CListCtrlEx::AddItem(short i, char* name, char* text)
{
LVITEM lvi; lvi.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_PARAM;
lvi.iItem = GetItemCount();
lvi.iImage = i;
lvi.iSubItem = 0;
lvi.pszText = name;
lvi.cchTextMax = 64;
lvi.lParam = 0;
InsertItem(&lvi); lvi.mask = LVIF_TEXT;
lvi.pszText = text;
lvi.cchTextMax = 32;
lvi.iSubItem = 1;
SetItem(&lvi);
}
后来我想在显示用户前显示图标,调用和关联代码如下:
m_imglist.Create ( 48, 48, ILC_COLOR16 | ILC_MASK, 4, 1 );
m_imglist.Add (HICON(::LoadImage (AfxGetResourceHandle(), MAKEINTRESOURCE(IDI_THIS),
IMAGE_ICON, 48, 48, LR_DEFAULTCOLOR )));
this->dlgBar.m_userlist.SetImageList ( &m_imglist, LVSIL_SMALL );this->dlgBar.m_userlist.AddItem(0, pStr->from.GetBuffer(0), pStr->ip.GetBuffer(0));
结果登录第一个用户没问题,也可以显示用户图标,但登录第二个用户程序崩溃。为什么?谢谢!!
解决方案 »
- MFC 的CExplorer插件更新问题
- 恭喜博客访问量突破一百,押宝又赢了,散分!连续回复三次有惊喜!
- MFC 如何通过点击一个按钮 弹出outlook 发送邮件
- 跨进程COM接口调用问题,急急急!!!
- 高分求救,如何得到QQ或者Msn或者email中的附件??解决另给400分
- 这是怎么回事,我只是加入了一个MSFlexGrid控件,对话框就没了!!!!!!!
- 有谁做过smartphone手机的开发?有没什么相关的源代码?谢谢
- 串口编程菜鸟问题!100分!
- 菜鸟关于 scrollbar的问题
- 新手求助!再送20分!在线等……
- 怎么样在类向导里添加一个新类!
- 随意散分----------------
void CListCtrlEx::AddItem(short i, char* name, short j)
{
LVITEM lvi; lvi.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_PARAM;
lvi.iItem = GetItemCount();
lvi.iImage = i;
lvi.iSubItem = 0;
lvi.pszText = name;
lvi.cchTextMax = 64;
lvi.lParam = 0;
InsertItem(&lvi);
//显示第二列图标
lvi.mask = LVIF_IMAGE;
lvi.iImage = j;
lvi.iSubItem = 1;
lvi.cchTextMax = 64;
SetItem(&lvi);
}
然后调用
m_imglist.Create ( 48, 48, ILC_COLOR16 | ILC_MASK, 4, 1 );
m_imglist.Add (HICON(::LoadImage (AfxGetResourceHandle(), MAKEINTRESOURCE(IDI_THIS),
IMAGE_ICON, 48, 48, LR_DEFAULTCOLOR )));
m_userlist.SetImageList ( &m_imglist, LVSIL_SMALL ); m_userlist.AddItem(0, pStr->from.GetBuffer(0), 0);
结果显示第一列图标,第二列没显示.为什么?谢谢!!