void CGkbc8Dlg::OnSelchangeComboboxex1() { COMBOBOXEXITEM cbi; memset(&cbi,0,sizeof(COMBOBOXEXI ...
74上位机VC MFC列表视图浏览文件及目录信息
功能展示
有开发上位机程序时,不可避免的要与文件与目录打交道,我们当前例程通过列表视图控件完成对文件及目录的操作与信息显示,可以根据自己程序功能的需要完成特定功能,效果如图 要点提示 在列表视图中显示文件及目录,我们得定义一个字符器变量,保存用户当前操作所在的目录,然后再自定义一个函数DisplayPath(),罗列出该目录下的文件与子目录,并将全部显示在列表视图中;
实现功能 1.新建基于对话框的应用程序 2.将我们当前例程中类CFileListCtrl的两个文件FileList.cpp FileList.h,复制到自己的工程根目录下,并加载到工程当中;并在主对话框中添加一列表控件关联我们的类变量CFileListCtrl m_FileList; 3.再添加一扩展组合框控件,关联变量CComboBoxEx m_Combo;用于记用户选择操作的盘符,比如是对C盘还是D盘操作; 4.设置列表头,并定定义一函数LoadSysDisk()实现组合框与列表框的初始化 m_FileList.SetColumns(_T("文件名,200;文件,100;文件日期,200"));//设置列表表头
LoadSysDisk();//加载系统盘符 - void CGkbc8Dlg::LoadSysDisk()
- {
- m_Combo.SetImageList(&m_FileList.m_ImageList);//设置操作系统图标
- m_Combo.ResetContent();//清除组合框内容
- char pchDrives[128] = {0};
- char* pchDrive;
- GetLogicalDriveStrings(sizeof(pchDrives), pchDrives) ;//获取全部有效系统盘符
- pchDrive = pchDrives;
- int nItem = 0;
- while(*pchDrive)
- {
- COMBOBOXEXITEM cbi;
- CString csText;
- cbi.mask = CBEIF_IMAGE|CBEIF_INDENT|CBEIF_OVERLAY| CBEIF_SELECTEDIMAGE|CBEIF_TEXT;
- SHFILEINFO shInfo;
- int nIcon;
- SHGetFileInfo(pchDrive, 0, &shInfo, sizeof(shInfo), SHGFI_ICON|SHGFI_SMALLICON);//获取当前盘符信息
- nIcon = shInfo.iIcon;
- cbi.iItem = nItem;
- cbi.pszText = pchDrive;
- cbi.cchTextMax = strlen(pchDrive);
- cbi.iImage = nIcon;
- cbi.iSelectedImage = nIcon;
- cbi.iOverlay = 0;
- cbi.iIndent = (0 & 0x03);
- m_Combo.InsertItem(&cbi);
- nItem++;
- pchDrive += strlen(pchDrive) + 1;
- }
- m_Combo.SetCurSel(0);//初始化组合框为第0项
- OnSelchangeComboboxex1();//根据组合框的选择初始化列表框
- }
复制代码OnSelchangeComboboxex1()为组合框选项改变时触发的函数,我们可以在里面根据组合框当前的选项,刷新列表视图的内容 - void CGkbc8Dlg::OnSelchangeComboboxex1()
- {
- COMBOBOXEXITEM cbi;
- memset(&cbi,0,sizeof(COMBOBOXEXITEM));
- int nCurItem = m_Combo.GetCurSel();
- cbi.mask = CBEIF_TEXT;
- char chName[128] = {0};
- cbi.pszText = chName;
- cbi.cchTextMax = 128;
- cbi.iItem = nCurItem;
- m_Combo.GetItem(&cbi);
- m_FileList.m_BaseDir = chName;
- m_FileList.DisplayPath(chName);
- }
- <div style="text-align: center;"><b style="line-height: 1.5;"><font size="4">我们来演示下功能实现的整个过程</font></b></div>
复制代码
|