
MFC 有关List Contol 列表框的使用!出现了一点问题!!
代码如下:if(SXX)//if里面的内容只会运行一次{i=1;m_列表框.InsertColumn(0,"头像",LVCFMT_LEFT,100);m_列表框.Inse...
代码如下:
if(SXX)// if里面的内容只会运行一次
{
i=1;
m_列表框.InsertColumn(0,"头像",LVCFMT_LEFT,100);
m_列表框.InsertColumn(1,"ID",LVCFMT_LEFT,100);
m_列表框.InsertColumn(2,"昵称",LVCFMT_LEFT,100);
SXX=false;
CImage img ;
if(!img.IsNull()) img.Destroy();
img.Load("D:\\vs2008\\C++file\\TCP服务器1\\TCP服务器1\\res\\猫老师.png");
HBITMAP hBitmap=img.Detach();
CBitmap bm;
bm.Attach(hBitmap);
m_CImg.Create(80,80,ILC_COLOR32,1,3);
m_CImg.Add(&bm,RGB(0,0,0));
m_列表框.SetImageList(&m_CImg,LVSIL_SMALL);
}
LVITEM lvitem;
memset(&lvitem,0,sizeof(LVITEM));
lvitem.mask=LVIF_IMAGE;
lvitem.iItem=i++;
lvitem.iImage=0;
m_列表框.InsertItem(&lvitem);
m_列表框.SetItemText(i,1,"hghj");// 表示第i行的第一列输出文本 hghj
m_列表框.SetItemText(i,2,"4444");
为什么只有图片,而没有输出文字?求大神解释!!! 展开
if(SXX)// if里面的内容只会运行一次
{
i=1;
m_列表框.InsertColumn(0,"头像",LVCFMT_LEFT,100);
m_列表框.InsertColumn(1,"ID",LVCFMT_LEFT,100);
m_列表框.InsertColumn(2,"昵称",LVCFMT_LEFT,100);
SXX=false;
CImage img ;
if(!img.IsNull()) img.Destroy();
img.Load("D:\\vs2008\\C++file\\TCP服务器1\\TCP服务器1\\res\\猫老师.png");
HBITMAP hBitmap=img.Detach();
CBitmap bm;
bm.Attach(hBitmap);
m_CImg.Create(80,80,ILC_COLOR32,1,3);
m_CImg.Add(&bm,RGB(0,0,0));
m_列表框.SetImageList(&m_CImg,LVSIL_SMALL);
}
LVITEM lvitem;
memset(&lvitem,0,sizeof(LVITEM));
lvitem.mask=LVIF_IMAGE;
lvitem.iItem=i++;
lvitem.iImage=0;
m_列表框.InsertItem(&lvitem);
m_列表框.SetItemText(i,1,"hghj");// 表示第i行的第一列输出文本 hghj
m_列表框.SetItemText(i,2,"4444");
为什么只有图片,而没有输出文字?求大神解释!!! 展开
1个回答
展开全部
记忆中想要实现你这样的得自绘Item吧,lvitem.mask=LVIF_IMAGE这样设置了元素是图片的格式,自然就不再显示文本了。
更多追问追答
追问
怎么自绘Item?有没有你以前做过得代码来参考一下?求大神指点!
追答
应该有DrawItem类似的函数可以重载,重载以后可以获得Item的矩形范围,在这个范围内绘制你的图片就可以了,当然,之前最好利用字体把你的行间距撑大了;网上有很多自绘的CListCtrl的例子,可以搜索到一大把,懂点MFC的话你应该可以看懂。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询