C++/MFC-List Control(图标、报表、列表)风格
来源:互联网 发布:国外免费音乐软件 编辑:程序博客网 时间:2024/05/17 02:13
Listbox Control:列表控件 List Control:列表视图控件
一、CListCtrl常用属性
View:视图方式;1.大(标准)图标2.小图标3.列表4.报表Sort:排序;
No Scroll:没有进度条;
二、CListCtrl常用成员函数
int InsertItem( intnItem, LPCTSTRlpszItem ); //插入项目int InsertItem( intnItem, LPCTSTRlpszItem, intnImage );//插入一个项目,带图标序号的
BOOL DeleteItem( int nItem );
int GetItemCount( ); //获取项目数
BOOL SetItemText( int nItem, int nSubItem, LPTSTR lpszText );//设置项目文本
int GetItemText( int nItem, int nSubItem, LPTSTR lpszText, int nLen ) const;
CString GetItemText( intnItem, intnSubItem ) const;
CImageList* SetImageList( CImageList* pImageList, int nImageList );
三、图标风格
3.1CImageList
CImageList*SetImageList(CImageList*pImageList,int nImageList);只能是16*16 或 32*32
BOOL Create(intcx,intcy,UINT nFlags,int nInitial,int nGrow);
CImageList::Create(32,32,ILC_COLOR32|ILC_MASK,2,1);//创建图标列表,此处32*32
//ILC_COLOR32指定颜色位数
//ILC_MASK是否启用透明
3.2添加图标资源至ImageList对象
CWinApp::LoadIconHICON LoadIcon(LPCTSTR lpszResourceName)const;
HICON LoadIcon(UINT nIDResource)const;
imagelistb.Add(AfxGetApp()->LoadIcon(IDR_MAINFRAME));//添加资源图标
3.3举例
xxxDlg.h中CImageList m_imagelist_b;
CListCtrl* plst_ctl = (CListCtrl*)GetDlgItem(IDC_LIST2);//添加图标m_imagelist_b.Create(32, 32, ILC_COLOR32 | ILC_MASK, 0, 0);//创建m_imagelist_b.Add(AfxGetApp()->LoadIcon(IDR_MAINFRAME));//添加plst_ctl->SetImageList(&m_imagelist_b, LVSIL_NORMAL);//设置
3.4提取文件图标
WINSHELLAPIDWORD WINAPI SHGetFileInfo( LPCTSTR pszPath, //文件路径 DWORD dwFileAttributes, //文件属性 忽略 SHFILEINFO FAR *psfi,//返回文件信息 UINT cbFileInfo, //SHFILEINFO 结构大小 UINT uFlags //文件标志 SHGFI_ICON);示例代码:
CListCtrl* plst_ctl = (CListCtrl*)GetDlgItem(IDC_LIST2);//添加图标m_imagelist_b.Create(32, 32, ILC_COLOR32 | ILC_MASK, 0, 0);//大图标m_imagelist_s.Create(32, 32, ILC_COLOR32 | ILC_MASK, 0, 0);//小图标CFileFind findfile;int nfound = findfile.FindFile(L"C:\\Windows\\//*.*");//C:\\Windows\\为Windows目录下的int i = 0;while (nfound){nfound = findfile.FindNextFileW();if (findfile.IsDirectory()){continue;}SHFILEINFO finfo;//获取文件信息,主要是图标iconSHGetFileInfo(findfile.GetFilePath(), 0, &finfo, sizeof(finfo), SHGFI_ICON);m_imagelist_s.Add(finfo.hIcon);plst_ctl->InsertItem(i++, findfile.GetFileName(), m_imagelist_b.Add(finfo.hIcon));}plst_ctl->SetImageList(&m_imagelist_b, LVSIL_NORMAL);//大图标plst_ctl->SetImageList(&m_imagelist_s, LVSIL_SMALL);//小图标 findfile.Close();//释放
3.5双击打开文件
CListCtrl::GetFirstSelectedItemPosition
POSITION GetFirstSelectedItemPosition( ) const;
//返回选中项目的位置
CListCtrl::GetNextSelectedItem
int GetNextSelectedItem( POSITION& pos ) const;
//返回选中项目的索引值
//ShellExecute函数
HINSTANCE ShellExecute(
HWND hwnd, //指定父窗口句柄,此参数可为NULL
LPCTSTR lpOperation, //操作方式
LPCTSTR lpFile, //要打开的文件名,一般是全路径的如 c:\\1.txt
LPCTSTR lpParameters, //要带的参数
LPCTSTR lpDirectory,//默认运行目录
INT nShowCmd //显示方式
);
为控件添加一个双击事件NM_Dblclk.
//获取文件目录路径及文件CListCtrl* plst_ctl = (CListCtrl*)GetDlgItem(IDC_LIST2);//获取ListCtrl选中项的位置POSITION pos = plst_ctl->GetFirstSelectedItemPosition();if (pos){int item_index = plst_ctl->GetNextSelectedItem(pos);//获取选中图标的文件名CString filename = plst_ctl->GetItemText(item_index, 0);filename = FileDir + filename;//TRACE("%ws \n", filename);//MFC控制台输出函数。ShellExecute(0, NULL, filename, NULL, NULL, SW_SHOWNORMAL);//或者 ShellExecute(0, L"open", filename, NULL, NULL, SW_SHOW); 这两个函数一样}
四、报表风格
VS2010/MFC编程入门之二十八(常用控件:列表视图控件List Control 上)VS2010/MFC编程入门之二十九(常用控件:列表视图控件List Control 下)
plst_ctl->SetExtendedStyle(LVS_EX_FULLROWSELECT);即可全行选中。
- C++/MFC-List Control(图标、报表、列表)风格
- MFC点点滴滴——列表框使用list control(report风格的简单使用)
- MFC List Control 报表使用方法
- MFC列表控件--List control
- MFC-列表控件的使用(报表风格)
- List Control and Icons(列表控件加图标)
- LVITEM 列表视图控件(List Control) 显示图标
- MFC列表(List Control)中添加项
- MFC列表(List Control)中添加项 第二节
- MFC 列表(List Control)中删除项
- MFC之列表视图控件List Control
- 【MFC-12】VS2010/MFC之列表框控件动态编辑(List Control Edit)
- List Control (列表控件)
- MFC点点滴滴——列表框使用list control(总结1)
- VS2010/MFC编程入门之二十九(常用控件:列表视图控件List Control 下)
- VS2010/MFC编程入门之二十八(常用控件:列表视图控件List Control 上)
- VS2010/MFC编程入门之二十九(常用控件:列表视图控件List Control 下)
- VS2013/MFC编程入门之二十七(常用控件:列表视图控件List Control 上)
- Android webview 清除历史访问记录
- ActiveMQ在分布式系统作用和安装
- Java容器HashMap源代码解析
- ROC曲线
- element-ui 组件的 table 多选
- C++/MFC-List Control(图标、报表、列表)风格
- Html和CSS学习总结
- 排序算法之直接插入排序
- DPM——训练源码分析
- MySQL 事务介绍及使用
- Ambari2.5.0与HDP2.6.0集群安装配置
- 2 分钟读懂大数据框架 Hadoop 和 Spark 的异同
- uncompyle的使用(python的pyc文件还原py)
- 虚幻4c++入门小笔记