List Ctrl文件显示的问题 我用的是List Ctrl控件,有个按钮是选择电脑中的目录中的一个文件,然后在List Ctrl控件中第一列将这个文件夹的文件名按字母顺序(包括路径)全部显示出来,这个该怎么实现?我用了CFileDialog类,只是选定了文件,能显示路径,以后就不知道该怎么办了,请各位高手指教。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 首先遍历整个文件夹,然后加到m_TreeCtrl树型控件中,代码如下:List Ctrl操作与Tree Ctrl相似,自己查查作吧。HANDLE fh;WIN32_FIND_DATA fd;char tmpstr[100],tmpstr1[100];m_TreeCtrl = &GetTreeCtrl();//tmpstr值为文加夹名称 fh=FindFirstFile(tmpstr, &fd );if ( fh != INVALID_HANDLE_VALUE ){ sprintf(tmpstr1,"%s",fd.cFileName); m_TreeCtrl->InsertItem(tmpstr1, 1, 1, vhtItem, TVI_LAST); while ( FindNextFile( fh, &fd ) ) { sprintf(tmpstr1,"%s",fd.cFileName); tmpstr1[strlen(tmpstr1)-6]=0; m_TreeCtrl->InsertItem(tmpstr1, 1, 1, vhtItem, TVI_LAST); } FindClose(fh);}else FindClose(fh); 谢谢,我没用Tree Ctrl控件,显示路径是在一个Edit box里面。代码是:CFileDialog m_ldFile(TRUE); if(m_ldFile.DoModal() == IDOK){ m_dir = m_ldFile.GetPathName(); /* 显示文件名需要的代码 */ UpdateData(FALSE);m_dir是Edit Box控件的变量。遍历该怎么做呢? //假设你的List Ctrl为m_ListCtrl则遍历和加到List Control的例子源码如下,供参考,遍历主要依靠函数FindFirstFile和FindNextFile。加到List Control依靠InsertItem.HANDLE fh;WIN32_FIND_DATA fd;fh=FindFirstFile(m_dir , &fd );int m_nItemIndex=0;if ( fh != INVALID_HANDLE_VALUE ){ sprintf(tmpstr1,"%s",fd.cFileName); m_ListCtrl->InsertItem(m_nItemIndex,tmpstr1); m_nItemIndex++; while ( FindNextFile( fh, &fd ) ) { sprintf(tmpstr1,"%s",fd.cFileName); m_ListCtrl->InsertItem(m_nItemIndex,tmpstr1); m_nItemIndex++; } FindClose(fh);}else FindClose(fh); 程序运行出现异常 搞了两天也没搞出来 关于串口通讯 如何根据图片的大小来改变窗体的大小 古典程序员的困惑,有感于VS.NET 如何激活最小化的窗口??我试了BringWindowToTop等很多都不行。 求助 串口通讯 那里有Leadtools图像处理的下载? OLE DB是不是不支持“Order by”语句? 如何判断某个路径是否存在? 如判断C:\file\photo\目录是否存在. 80分求教打印的位置为什么不对呀 出现错误。大虾帮忙,顺便送100分 我用C++ Builder 写了个学英语单词的软件,大家看看怎么样!!! 散分
HANDLE fh;
WIN32_FIND_DATA fd;
char tmpstr[100],tmpstr1[100];
m_TreeCtrl = &GetTreeCtrl();
//tmpstr值为文加夹名称
fh=FindFirstFile(tmpstr, &fd );
if ( fh != INVALID_HANDLE_VALUE )
{
sprintf(tmpstr1,"%s",fd.cFileName);
m_TreeCtrl->InsertItem(tmpstr1, 1, 1, vhtItem, TVI_LAST);
while ( FindNextFile( fh, &fd ) )
{
sprintf(tmpstr1,"%s",fd.cFileName);
tmpstr1[strlen(tmpstr1)-6]=0;
m_TreeCtrl->InsertItem(tmpstr1, 1, 1, vhtItem, TVI_LAST);
}
FindClose(fh);
}
else
FindClose(fh);
CFileDialog m_ldFile(TRUE);
if(m_ldFile.DoModal() == IDOK){
m_dir = m_ldFile.GetPathName();
/* 显示文件名需要的代码 */
UpdateData(FALSE);
m_dir是Edit Box控件的变量。
遍历该怎么做呢?
HANDLE fh;
WIN32_FIND_DATA fd;
fh=FindFirstFile(m_dir , &fd );
int m_nItemIndex=0;if ( fh != INVALID_HANDLE_VALUE )
{
sprintf(tmpstr1,"%s",fd.cFileName);
m_ListCtrl->InsertItem(m_nItemIndex,tmpstr1);
m_nItemIndex++;
while ( FindNextFile( fh, &fd ) )
{
sprintf(tmpstr1,"%s",fd.cFileName);
m_ListCtrl->InsertItem(m_nItemIndex,tmpstr1);
m_nItemIndex++;
}
FindClose(fh);
}
else
FindClose(fh);