社区
ATL
帖子详情
如何利用LISTVIEW CTRL (Activex Control)组件
fenger
2000-10-13 08:39:00
请各位解决:
在MFC中,我想利用LISTVIEW CTRL (Activex Control)组件,在SP4中, 不是CLISTCTRL类。
但是现在不能把Imagelist 联上组件。方法是:MyListView1.SetIcons (LPDISPATCH).
如何创建一个LPDISPATCH参数?
...全文
156
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);
}
ActiveX
控件相关知识~
2004年10月9日10:37:56控件是做什么的? ... Function[函数]->OCX[OLE自动机]->ActriveX[活动
组件
]函数因为通用性不好,因人而异,移植困难.OLE遵循一定协议.可以,但各种语言编写的OC
VB编码规范
IDE设置 必须打开设置选项的”要求变量声明”,”对齐控件到网格...命名 工程
ActiveX
控件和DLL工程命名格式为(….Lib),EXE工程直接命名,如果是通用
组件
工程,直接命名,如果是项目或产品工程,则使用项目或产品缩
DLL Exports
一种是VC生成
ActiveX
控件(.ocx),在VB中插入;还有一种是在VC中生成
ActiveX
Automation服务器,在VB中调用。相对而言,第一种方法对VC编程者的要求最低,但要求你的伙伴进行配合,我推荐这种方法。 先说说VC++的编程...
VC++中可能遇到的问题
Power
Control
Panel中的“关闭监视器”是通过 VideoTimeoutAc 来设置的,单位为秒 SpindownTimeoutAc SpindownTimeoutDc控制硬盘 T 当一个USB设备和电脑连接,该USB驱动是系统自动识别的。系统如何能启动一个...
Mastering Delphi7 阅读笔记(摘要) 前八章
前八章目录:第一部分 基础第1章 Delphi7及其IDE Delphi的版本 IDE概述 Delphi编辑器 窗体设计器
组件
面板的秘密 管理项目 附加及外部Delphif具 系统生成的文件 对象库 Delphi 7中调试器的更新 小结第2...
ATL
3,245
社区成员
48,539
社区内容
发帖
与我相关
我的任务
ATL
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
复制链接
扫一扫
分享
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章