关于LISTVIEW中文件的显示, 像资源管理器一样,我如果在我的右边显示当前目录下面一层的目录?就是我点左边TREEVIEW时我如何能在右边显示这个目录? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我在左边控件里面已经得到文件列表,但用 mylistview.GetListCtrl().InsertItem(i-1,FName,i);为LISTVIEW添加值~? 在listctrl是插入的是一个结构体,我有一段原代码,是在视图中专门进行插入项的,你看看有没有用://在右列表视图添加文档void CDocumentListView::InsertItem(LPWSTR pItemName,LPWSTR pDescription,GUID DocGUID,LPCWSTR DocVersion,long DocNo,long DocStatus,LPWSTR ext_doc){ int iActItem; LV_ITEM lvitem; LPWSTR strGUID; //对GUID进行处理,转化为字符串 StringFromCLSID(DocGUID,&strGUID); lvitem.mask = LVIF_TEXT | LVIF_IMAGE ; lvitem.iImage = DocStatus; lvitem.iItem=GetListCtrl().GetItemCount(); lvitem.iSubItem =0; lvitem.pszText=pItemName; lvitem.lParam=NULL; iActItem=GetListCtrl().InsertItem(&lvitem); // insert new item lvitem.iItem=iActItem; lvitem.iSubItem=1; lvitem.pszText =(LPWSTR)DocVersion; GetListCtrl().SetItem(&lvitem); //add sub item lvitem.iItem=iActItem; lvitem.iSubItem=2; WCHAR Buffer[10]; _ltow(DocNo,Buffer,10); lvitem.pszText =Buffer; GetListCtrl().SetItem(&lvitem); //add sub item lvitem.iItem=iActItem; lvitem.iSubItem=3; lvitem.pszText =pDescription; GetListCtrl().SetItem(&lvitem); //add sub item lvitem.iItem=iActItem; lvitem.iSubItem=4; lvitem.pszText= strGUID; GetListCtrl().SetItem(&lvitem); //add sub item lvitem.iItem=iActItem; lvitem.iSubItem=5; lvitem.pszText= ext_doc; GetListCtrl().SetItem(&lvitem); //add sub item }另外,要获得当前树结点目录下的文件的话,应该响应树视图中的OnSelChanged()这个消息来进行操作. 我用的是两个类一个是MYLISTVIEW一个是MYTREEVIEW我想的是在MYTREEVIEW的OnSelChanged()中操作添加LIST的数据,我已经得到了LISTVIEW的指针,但总是显示不出来~代码如下Cmylistview mylistview; CFileFind OneFile; CString FName, DirName; BOOL BeWorking; HTREEITEM NewItem; mylistview.GetListCtrl().DeleteAllItems(); mylistview.GetListCtrl().SetBkColor(RGB(0,0,0)); DirName = StrPaths+"\\*.*"; BeWorking = OneFile.FindFile( DirName ); while ( BeWorking ) { //BeWorking非零,指找了文件或目录 //查找同级的目录 BeWorking = OneFile.FindNextFile(); //退出递归时,到了这里!!! if ( !OneFile.IsDirectory() && !OneFile.IsDots() ) //如果查找结果是文件 { //向Tree1中添加文件 FName = OneFile.GetFileTitle(); // mylistview.GetListCtrl().InsertItem(i,"1");//这两行是我添加LIST的数据代码,但什么都显示不出来~~~ mylistview.GetListCtrl().InsertItem(i-1,FName,i); AfxMessageBox(FName); i=i+1; } }// end of while OneFile.Close(); mylistview.GetListCtrl().InsertItem(i,"1");//这两行是我添加LIST的数据代码,但什么都显示不出来~~~你用的列表框(listbox)的插入项的方法,而在列表视图中用GetListCtrl得到的是clistCtrl,这两个是不同的.楼主再仔细看一下吧.我上面的代码就是这样操作的 LV_ITEM lvitem; lvitem.iItem=iActItem; lvitem.iSubItem=0; lvitem.pszText ="fdsafdsa"; mylistview.GetListCtrl().SetItem(&lvitem);我用了你的方法,这几行代码放在TREEVIEW里面,还是什么都没有?连设置颜色都没起作用mylistview.GetListCtrl().SetBkColor(RGB(0,0,0));但如果放在listview里面就起作用,为什么?郁闷! 你要先插入一个记录以后才能添加子项iActItem=GetListCtrl().InsertItem(&lvitem); // insert new itemmylistview.GetListCtrl().SetItem(&lvitem); mfc调试问题,急! 出现了debug assertion failed错误 指针的问题······················· MPEG4的运动信息问题 各位大哥进来看看怎么练不上数据库啊!我都试了一天了!! 为什么会这样! 请教如何像很多应用程序那样在一个TreeView里面显示我的电脑->各驱动器这样的Tree? 谈谈对于大文件的频繁读写操作 help!!MFC ODBC 创建数据库如何实现查询(绝对给分) <请教>关于内存中的BMP在C++中的显示 在ole db中,如何进行查找? 菜鸟问题
mylistview.GetListCtrl().InsertItem(i-1,FName,i);为LISTVIEW添加值~?
//在右列表视图添加文档
void CDocumentListView::InsertItem(LPWSTR pItemName,LPWSTR pDescription,GUID DocGUID,LPCWSTR DocVersion,long DocNo,long DocStatus,LPWSTR ext_doc)
{
int iActItem;
LV_ITEM lvitem;
LPWSTR strGUID;
//对GUID进行处理,转化为字符串
StringFromCLSID(DocGUID,&strGUID);
lvitem.mask = LVIF_TEXT | LVIF_IMAGE ;
lvitem.iImage = DocStatus;
lvitem.iItem=GetListCtrl().GetItemCount();
lvitem.iSubItem =0;
lvitem.pszText=pItemName;
lvitem.lParam=NULL;
iActItem=GetListCtrl().InsertItem(&lvitem); // insert new item
lvitem.iItem=iActItem;
lvitem.iSubItem=1;
lvitem.pszText =(LPWSTR)DocVersion;
GetListCtrl().SetItem(&lvitem); //add sub item lvitem.iItem=iActItem;
lvitem.iSubItem=2;
WCHAR Buffer[10];
_ltow(DocNo,Buffer,10);
lvitem.pszText =Buffer;
GetListCtrl().SetItem(&lvitem); //add sub item
lvitem.iItem=iActItem;
lvitem.iSubItem=3;
lvitem.pszText =pDescription;
GetListCtrl().SetItem(&lvitem); //add sub item lvitem.iItem=iActItem;
lvitem.iSubItem=4;
lvitem.pszText= strGUID;
GetListCtrl().SetItem(&lvitem); //add sub item lvitem.iItem=iActItem;
lvitem.iSubItem=5;
lvitem.pszText= ext_doc;
GetListCtrl().SetItem(&lvitem); //add sub item
}
另外,要获得当前树结点目录下的文件的话,应该响应树视图中的OnSelChanged()这个消息来进行操作.
一个是MYLISTVIEW
一个是MYTREEVIEW
我想的是在MYTREEVIEW的OnSelChanged()中操作添加LIST的数据,我已经得到了LISTVIEW的指针,但总是显示不出来~
代码如下
Cmylistview mylistview;
CFileFind OneFile;
CString FName, DirName;
BOOL BeWorking;
HTREEITEM NewItem; mylistview.GetListCtrl().DeleteAllItems();
mylistview.GetListCtrl().SetBkColor(RGB(0,0,0));
DirName = StrPaths+"\\*.*";
BeWorking = OneFile.FindFile( DirName );
while ( BeWorking ) { //BeWorking非零,指找了文件或目录 //查找同级的目录
BeWorking = OneFile.FindNextFile(); //退出递归时,到了这里!!!
if ( !OneFile.IsDirectory() && !OneFile.IsDots() ) //如果查找结果是文件
{
//向Tree1中添加文件
FName = OneFile.GetFileTitle();
// mylistview.GetListCtrl().InsertItem(i,"1");//这两行是我添加LIST的数据代码,但什么都显示不出来~~~
mylistview.GetListCtrl().InsertItem(i-1,FName,i);
AfxMessageBox(FName);
i=i+1;
}
}// end of while
OneFile.Close();
你用的列表框(listbox)的插入项的方法,而在列表视图中用GetListCtrl得到的是clistCtrl,这两个是不同的.楼主再仔细看一下吧.我上面的代码就是这样操作的
lvitem.iSubItem=0;
lvitem.pszText ="fdsafdsa";
mylistview.GetListCtrl().SetItem(&lvitem);
我用了你的方法,这几行代码放在TREEVIEW里面,还是什么都没有?连设置颜色都没起作用mylistview.GetListCtrl().SetBkColor(RGB(0,0,0));
但如果放在listview里面就起作用,为什么?
郁闷!
iActItem=GetListCtrl().InsertItem(&lvitem); // insert new item
mylistview.GetListCtrl().SetItem(&lvitem);