社区
ATL
帖子详情
如何利用LISTVIEW CTRL (Activex Control)组件
fenger
2000-10-13 08:39:00
请各位解决:
在MFC中,我想利用LISTVIEW CTRL (Activex Control)组件,在SP4中, 不是CLISTCTRL类。
但是现在不能把Imagelist 联上组件。方法是:MyListView1.SetIcons (LPDISPATCH).
如何创建一个LPDISPATCH参数?
...全文
200
3
打赏
收藏
如何利用LISTVIEW CTRL (Activex Control)组件
请各位解决: 在MFC中,我想利用LISTVIEW CTRL (Activex Control)组件,在SP4中, 不是CLISTCTRL类。 但是现在不能把Imagelist 联上组件。方法是:MyListView1.SetIcons (LPDISPATCH). 如何创建一个LPDISPATCH参数?
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Edward
2000-10-14
打赏
举报
回复
SP4 带的 ListView ActiveX 控件是专门为 VB 设计的,VC 用起来很麻烦。
Where it's easy for VB, it's difficult from VC.
另外,在 VB 设计环境中,ListView 与 ImageList 结合使用;我想在 VC 中,你也要使用 ImageList ActiveX Control;正是 ImageList 控件提供 LPDISPATCH 接口;在你的窗口上再放个 ImageList 吧。
土豆
2000-10-14
打赏
举报
回复
干吗一定要用ActiveX控件,用VC自带的CListView不行吗?
土豆
2000-10-13
打赏
举报
回复
BOOL CEnumNetworkDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Add "About..." menu item to system menu.
// IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
//设置列表控件的扩展属性
DWORD dwStyle = m_cNetResource.GetExtendedStyle();
dwStyle |= LVS_EX_FULLROWSELECT;
dwStyle |= LVS_EX_FLATSB;
m_cNetResource.SetExtendedStyle(dwStyle);
//设置光标
m_hCustomHotCursor= AfxGetApp()->LoadCursor(IDC_HOTCURSOR);
m_hHotCursor= m_cNetResource.GetHotCursor();
m_bHotCursor = FALSE;
//设置图标
HIMAGELIST hList = ImageList_Create(32,32, ILC_COLOR8 |ILC_MASK , 8, 1);
m_cImageListNormal.Attach(hList);
hList = ImageList_Create(16, 16, ILC_COLOR8 | ILC_MASK, 8, 1);
m_cImageListSmall.Attach(hList);
CBitmap cBmp;
cBmp.LoadBitmap(IDB_IMAGES_NORMAL);
m_cImageListNormal.Add(&cBmp, RGB(255,0, 255));
cBmp.DeleteObject();
cBmp.LoadBitmap(IDB_IMAGES_SMALL);
m_cImageListSmall.Add(&cBmp, RGB(255,0, 255));
m_cNetResource.SetImageList(&m_cImageListNormal, LVSIL_NORMAL);
m_cNetResource.SetImageList(&m_cImageListSmall, LVSIL_SMALL);
//添加列
CRect rect;
m_cNetResource.GetClientRect(&rect);
int nColInterval = rect.Width()/7;
m_cNetResource.InsertColumn(0, _T("真名"), LVCFMT_LEFT, nColInterval*3);
m_cNetResource.InsertColumn(1, _T("层次"), LVCFMT_LEFT, nColInterval);
m_cNetResource.InsertColumn(2, _T("显示名称"), LVCFMT_LEFT, rect.Width()-4*nColInterval);
return TRUE; // return TRUE unless you set the focus to a control
}
void CEnumNetworkDlg::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;
m_cNetResource.InsertItem(&lvi);
LPTSTR szLevel="";
wsprintf(szLevel,_T("%d"),iLevel);
lvi.mask = LVIF_IMAGE | LVIF_TEXT;
lvi.iSubItem =1;
lvi.pszText =szLevel;
m_cNetResource.SetItem(&lvi);
lvi.mask = LVIF_IMAGE | LVIF_TEXT;
lvi.iSubItem =2;
lvi.pszText = (LPTSTR)(LPCTSTR)(szDisplayName);
m_cNetResource.SetItem(&lvi);
}
void CEnumNetworkDlg::OnEnum()
{
// TODO: Add your control notification handler code here
m_iNumbers=0;
m_cNetResource.DeleteAllItems();
EnumerateNetHood((LPNETRESOURCE)NULL);
}
推荐开源项目:Canta-gtk-theme,您的桌面美化新选择!
在寻找让您的Linux桌面焕然一新的解决方案吗?让我们来探索一款设计精美的主题——**Canta-gtk-theme**,一个拥抱扁平化Material Design美学的GTK主题。无论是Gnome、Unity、Budgie还是XFCE等众多基于GTK 3和GTK 2的桌面环境,Canta都将是您的理想之选。 ## 项目介绍 Canta源自于nana-4开发的materia-gtk-them
为什么选择Awesome Linux Ricing:10个理由让你爱上Linux桌面定制
你是否厌倦了千篇一律的Linux桌面界面?想要打造一个真正属于自己的个性化工作环境吗?🎨 **Awesome Linux Ricing** 正是你需要的终极指南!这个精心策划的资源列表汇集了最优秀的Linux桌面定制工具、主题和应用程序,让你能够轻松创建令人惊艳的个性化桌面体验。 ## 1. 🌟 **一站式资源宝库,告别繁琐搜索** Awesome Linux Ricing为你提供了一个完
Nemo:Cinnamon桌面环境的高效文件管理器
Nemo是一款免费且开源的文件浏览器,专为Cinnamon桌面环境设计,并作为其官方文件管理工具。它是从GNOME文件管理器Nautilus(之前称为Nautilus)v3.4分支出来的。Nemo自2012年7月发布第一个版本以来,一直与Cinnamon的迭代同步发展。这个项目以Jules Verne笔下的著名角色Captain Nemo命名,呼应了它的前身Nautilus的名称。Nemo的主要编...
8、Linux桌面环境:KDE与Ubuntu MATE深度解析
本文深度解析了Linux系统中两大优秀桌面环境——KDE和Ubuntu MATE。从Flatpak应用分发的新趋势,到KDE的外观、功能、性能与可定制性,再到Ubuntu MATE的传统桌面体验、易用性与稳定性,内容全面详尽。通过对比两者在操作体验、性能表现、适用场景等方面的优劣势,帮助用户根据自身需求选择最适合的桌面环境。
【Linux】虚拟机安装 openEuler 24.03 X86_64
1.1 openEuler 覆盖全场景的创新平台openEuler 已支持 x86、Arm、SW64、RISC-V、LoongArch 多处理器架构,逐步扩展 PowerPC 等更多芯片架构支持,持续完 善多样性算力生态体验。openEuler 社区面向场景化的 SIG 不断组建,推动 openEuler 应用边界从最初的服务器场景,逐步拓展到云计算、边缘计算、 嵌入式等更多场景。
ATL
3,248
社区成员
48,530
社区内容
发帖
与我相关
我的任务
ATL
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
复制链接
扫一扫
分享
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章