在CListCtrl中设置CImageList的问题.

vvvvvvv 2003-12-13 11:51:21
......
enum { IDD = IDD_SYMBOLSELECT };
CListCtrl m_list1;
//}}AFX_DATA
CImageList mm;

............
mm.Create (IDB_SYMBOLS, 16, 1, RGB(192,192,192));

............
DDX_Control(pDX, IDC_LIST1, m_list1);

............

BOOL CSymbolSelectDlg::OnInitDialog()
{
CDialog::OnInitDialog();

// TODO: Add extra initialization here
m_list1.SetImageList(&mm,LVSIL_SMALL);
CString cc;
for(int i=0;i {
cc.Format("%d",i);
m_list1.InsertItem(i,cc,i);
}
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}

Resource:
IDC_LIST1: View:Icon

为什么图像列表显示不出来,只显示字符串cc.
...全文
76 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
vvvvvvv 2003-12-14
  • 打赏
  • 举报
回复
放在前,放在后都试过了,还是不行。。
孤必有邻 2003-12-14
  • 打赏
  • 举报
回复
你把这一句
mm.Create (IDB_SYMBOLS, 16, 1, RGB(192,192,192));
放在了构造函数中了?
那你就放在这一句
m_list1.SetImageList(&mm,LVSIL_SMALL);
前试了吗?
vvvvvvv 2003-12-14
  • 打赏
  • 举报
回复
我的IDB_SYMBOLS是包含100个16X16像素的图块,不是图标。
killghost 2003-12-14
  • 打赏
  • 举报
回复
就是用上面的这种方式即可!!
nava 2003-12-14
  • 打赏
  • 举报
回复
CImageList *m_pImageList;


m_ctlList.SetExtendedStyle (LVS_EX_FULLROWSELECT |LVS_EX_GRIDLINES |LVS_EX_INFOTIP);
m_pImageList = new CImageList();
m_pImageList->Create(32, 32, TRUE, 4, 4);
m_pImageList->Add(AfxGetApp()->LoadIcon(IDI_BMP));
m_ctlList.SetImageList(m_pImageList, LVSIL_NORMAL);
killghost 2003-12-13
  • 打赏
  • 举报
回复
m_HeadIcon.Create(16,16,TRUE,2,2);
m_HeadIcon.Add(AfxGetApp()->LoadIcon(IDI_HEADICON));
m_ListCtrl.SetImageList(&m_HeadIcon,LVSIL_SMALL);

仅供参考!!!!
孤必有邻 2003-12-13
  • 打赏
  • 举报
回复
如果你把这一句
mm.Create (IDB_SYMBOLS, 16, 1, RGB(192,192,192));
放在了头文件中,那就放在这一句前
m_list1.SetImageList(&mm,LVSIL_SMALL);
试试
vvvvvvv 2003-12-13
  • 打赏
  • 举报
回复
怎么没有人了?
vvvvvvv 2003-12-13
  • 打赏
  • 举报
回复
我是想做一个qq头像选择列表一样的图标选择器。

谢谢。
vcforever 2003-12-13
  • 打赏
  • 举报
回复
m_ImageList.Create(16, 16, ILC_MASK, 0, 1);
m_ctlList.SetImageList(&m_ImageList, LVSIL_SMALL);
//如果你想在每一行的前面插入图标,你必须在插入列的时候插入一个空白列
m_ctlList.InsertColumn( 0, _T(""), LVCFMT_CENTER, 20, -1);//空白列用来容纳图标
m_ctlList.InsertColumn( 1, _T("线路标号"), LVCFMT_CENTER, 120, -1);
m_ctlList.InsertColumn( 2, _T("线路状态"), LVCFMT_CENTER, 120, -1);

试一试!
祝你成功!
vvvvvvv 2003-12-13
  • 打赏
  • 举报
回复
mm.Create (IDB_SYMBOLS, 16, 1, RGB(192,192,192));
这一行放在析构函数中,另外我的IDB_SYMBOLS有100个16X16像素的图块组成。

还请指点。

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧