Imagelist attached to the listview ctrl (Activex control)

fenger 2000-10-13 01:13:00
请各位解决:
在MFC中,我想利用LISTVIEW CTRL (Activex Control)组件,
但是现在不能把Imagelist 联上组件。方法是:MyListView1.SetIcons (LPDISPATCH).
如何创建一个LPDISPATCH参数?

...全文
68 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
土豆 2000-10-13
  • 打赏
  • 举报
回复
将ImageList连上控件用SetImageList方法可以实现
土豆 2000-10-13
  • 打赏
  • 举报
回复
不需要用MyListView1.SetIcons (LPDISPATCH).
土豆 2000-10-13
  • 打赏
  • 举报
回复
下面是我的一个实例中的部分代码,包括了对ListView的操作,其中可能有一些变量不是在这里定义的,但我想应该不影响你了解怎样使用ListView.
下面的几个变量是别处定义的:
CListView lvMyList;
CImageList mlNormal,mlSmall;

//设置列表视的属性:
void SetListViewProperty()
{

//设置列表控件的扩展属性
DWORD dwStyle = lvMyList.GetExtendedStyle();
dwStyle |= LVS_EX_FULLROWSELECT;
dwStyle |= LVS_EX_FLATSB;
lvMyList.SetExtendedStyle(dwStyle);

//设置光标
m_hCustomHotCursor= AfxGetApp()->LoadCursor(IDC_HOTCURSOR);
m_hHotCursor= lvMyList.GetHotCursor();
m_bHotCursor = FALSE;

//设置图标
HIMAGELIST hList = ImageList_Create(32,32, ILC_COLOR8 |ILC_MASK , 8, 1);
mlNormal.Attach(hList);

hList = ImageList_Create(16, 16, ILC_COLOR8 | ILC_MASK, 8, 1);
mlSmall.Attach(hList);

CBitmap cBmp;
cBmp.LoadBitmap(IDB_IMAGES_NORMAL);
mlNormal.Add(&cBmp, RGB(255,0, 255));
cBmp.DeleteObject();

cBmp.LoadBitmap(IDB_IMAGES_SMALL);
mlSmall.Add(&cBmp, RGB(255,0, 255));

lvMyList.SetImageList(&mlNormal, LVSIL_NORMAL);
lvMyList.SetImageList(&mlSmall, LVSIL_SMALL);

//添加列
CRect rect;
lvMyList.GetClientRect(&rect);
int nColInterval = rect.Width()/7;

lvMyList.InsertColumn(0, _T("真名"), LVCFMT_LEFT, nColInterval*3);
lvMyList.InsertColumn(1, _T("层次"), LVCFMT_LEFT, nColInterval);
lvMyList.InsertColumn(2, _T("显示名称"), LVCFMT_LEFT, rect.Width()-4*nColInterval);
}

//插入项
void InsertItem(int iLevel,CString szTrueName,CString szDisplayName)
{
m_iNumbers++;

LVITEM lvi;
lvi.mask = LVIF_IMAGE | LVIF_TEXT|LVIF_INDENT;
lvi.iItem =m_iNumbers;
lvi.iIndent=iLevel;
lvi.iSubItem = 0;
lvi.pszText = (LPTSTR)(LPCTSTR)(szTrueName);
lvi.iImage = iLevel;
lvMyList.InsertItem(&lvi); //第一列

LPTSTR szLevel="";
wsprintf(szLevel,_T("%d"),iLevel);
lvi.mask = LVIF_IMAGE | LVIF_TEXT;
lvi.iSubItem =1;
lvi.pszText =szLevel;
lvMyList.SetItem(&lvi); //第二列

lvi.mask = LVIF_IMAGE | LVIF_TEXT;
lvi.iSubItem =2;
lvi.pszText = (LPTSTR)(LPCTSTR)(szDisplayName);
lvMyList.SetItem(&lvi); //第三列
}

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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