ListCtrl的使用
来源:互联网 发布:淘宝app直通车在哪里找 编辑:程序博客网 时间:2024/06/05 20:34
通过“打开”命令和“打开文件夹”命令,获取文件信息,并将文件信息写入到ListCtrl中:
以下未经说明,listctrl默认view 风格为report;
一、在C123View::OnInitialUpdate()中初始化listctrl:
/*设置扩展风格*/
m_Listctrl.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_CHECKBOXES );//选整行、网格、复选框
/*插入列*/
m_Listctrl.InsertColumn(0,_T("文件名"),LVCFMT_LEFT);
m_Listctrl.InsertColumn(1,_T("保存路径"));
m_Listctrl.InsertColumn(2,_T("格式"));
//_T("")是一个宏,定义于tchar.h下,他的作用是让你的程序支持Unicode编码
/*设置列宽*/
for(int j=0;j<4;j++) m_Listctrl.SetColumnWidth(j,120);
二、对“打开”命令添加消息响应:
void C123View::OnFileAdd()
{
/////////////////////////////////////////////创建“打开”对话框////////////////////////////////////////////////////////////////////
CFileDialog fileDlg(TRUE);
fileDlg.m_ofn.lpstrTitle="添加";//对话框标题
fileDlg.m_ofn.lpstrFilter="pdf File(*.pdf)/0*.pdf/0All Files(*.*)/0*.*/0/0";//文件类型过滤
//fileDlg.DoModal();//显示对话框的DoModal()函数在下面的If语句中调用了,这里注释起来
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if(IDOK==fileDlg.DoModal())//如果模态对话框创建成功,且按下确认时,执行以下代码
{
//////////////////////////////////////////////////////获取文件信息/////////////////////////////////////////////////////////////////////
CString strName,strPath,strExt;//文件名、文件路径、文件扩展名
strName=fileDlg.GetFileName();//获得文件名
strPath=fileDlg.GetPathName();//获得文件路径
strExt=fileDlg.GetFileExt();//获得文件扩展名
m_Listctrl.InsertItem(0,strName);//插入文件名,此处不可用SetItemText,为什么呢?
//m_Listctrl.SetItemText(0,0,strName);
m_Listctrl.SetItemText(0,1,strPath);//插入路径
m_Listctrl.SetItemText(0,2,(strExt)); //插入扩展名
}
}
三、浏览文件夹、将文件夹中的文件信息写入Listctrl
////////////////////////////////////////////////////获取文件夹信息///////////////////////////////////////////////////////////////////
BROWSEINFO bInfo
ZeroMemory(&bInfo, sizeof(bInfo));
bInfo.hwndOwner = m_hWnd;//Handle to the owner window for the dialog box;
bInfo.ulFlags = BIF_RETURNONLYFSDIRS;
LPITEMIDLIST lpDlist; //用来保存返回信息的IDList
lpDlist = SHBrowseForFolder(&bInfo) ; //显示选择对话框,将文件夹信息传递给lpDlist
////////////////////////////////////////////////////获取文件夹信息///////////////////////////////////////////////////////////////////
if(lpDlist != NULL) //当用户选择了文件夹,按下确定按钮
{
TCHAR chPath[255]; //用来存储路径的字符串
SHGetPathFromIDList(lpDlist, chPath);//通过项目标识列表获取路径字符串
strPath = chPath; //将TCHAR类型的字符串转换为CString类型的字符串
CFileFind finder;
BOOL bWorking =finder.FindFile(strPath+"//*.txt");//查找文本文件
while(bWorking)
{
bWorking = finder.FindNextFile();//查找下一个文件
strName=finder.GetFileName();//获取文件名
strPath=finder.GetFilePath();//获取路径
strExt=strName.Right(3);//获取扩展名
m_Listctrl.InsertItem(0,strName);//插入文件名
m_Listctrl.SetItemText(0,1,strPath);//插入路径
m_Listctrl.SetItemText(0,2,(strExt)); //插入扩展名
}
finder.Close(); //关闭文件查找
}
}
////////////////////////////////////////////////////将文件信息写入Listctrl//////////////////////////////////////////////////////
- ListCtrl的使用
- ListCtrl控件的使用
- ListCtrl的使用
- listctrl的使用
- ListCtrl控件的使用
- MFC中listctrl的使用
- VC ListCtrl控件的使用
- ListCtrl控件的简单使用
- MFC ListCtrl控件的使用
- ListCtrl控件的简单使用
- MFC ListCtrl控件的使用
- MFC中listctrl的使用
- 使用LISTCTRL
- ListCtrl 使用
- MFC控件使用之一 ListCtrl的使用
- VC中ListCtrl控件的使用(一)
- VC中ListCtrl控件的使用(二)
- VC LISTCTRL控件的简单使用
- 关于通过DDMS向Android系统的模拟器的sdcard中导入mp3文件的问题
- Java经典连连看游戏源代码
- unexpected end of file while looking for precompiled header directive 解决办法
- 16进制 转化为COLORREF 格式的
- 进程内注册控件
- ListCtrl的使用
- SystemParametersInfo详说
- 什么是ActiveX控件?
- ScriptManager与UpdatePanel总结
- C# 中的委托和事件
- 辞职信样本
- 手机wap网站首页宽度和长度统计分析
- Android: PLEASE DO NOT USE A WAKE LOCK
- linux—select详解