我的treeview和listview是两个不同的类,我的代码
void Cmytreeview::OnSelchangedTree(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
HTREEITEM hItem = m_tree.GetSelectedItem();
CString str=GetFullPath(hItem);//这个得到路径
mylistview.settext(str);//这个是显示listview的函数,我如果在listview中调用这个就会显示 //出来,但是放到treeview调用就显示不出来啦
*pResult = 0;
}
void Cmytreeview::OnSelchangedTree(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
HTREEITEM hItem = m_tree.GetSelectedItem();
CString str=GetFullPath(hItem);//这个得到路径
mylistview.settext(str);//这个是显示listview的函数,我如果在listview中调用这个就会显示 //出来,但是放到treeview调用就显示不出来啦
*pResult = 0;
}
是不是应该把这个函数列出来ps:会不会_tree.GetSelectedItem();返回步正确
HTREEITEM hItem=pNMTreeView.itemNew.hItem;//来获得
你要调试一下,看看到底hItem有没有值,str有没有值,还有mylistview是不是指向了列表视图.
还有settext放到listview就能显示,放到另的类就不能显示,是不是差什么刷新listiview的?
下面是settext
CFileFind OneFile;
CString FName, DirName;
BOOL BeWorking;
GetListCtrl().DeleteAllItems();
GetListCtrl().SetBkColor(RGB(0,0,0));
DirName = t+"\\*.*";
BeWorking = OneFile.FindFile( DirName );
while ( BeWorking ) { //BeWorking非零,指找了文件或目录 //查找同级的目录
BeWorking = OneFile.FindNextFile();
if ( !OneFile.IsDirectory() && !OneFile.IsDots() ) //如果查找结果是文件
{
FName = OneFile.GetFileTitle();
GetListCtrl().InsertItem(1,FName);//这个显示一列的数据;
}
}
OneFile.Close();
{
CListView::OnInitialUpdate();
CListCtrl &m_list = GetListCtrl(); m_list.SetBkColor(RGB(242,251,255));
m_list.SetTextColor( RGB(12,26,234) );
m_list.InsertColumn(0 , "报警顺序号", LVCFMT_LEFT, 80, 0 );
m_list.ModifyStyle( LVS_TYPEMASK,LVS_REPORT | LVS_SINGLESEL );
m_list.SetExtendedStyle( LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES |LVS_EX_HEADERDRAGDROP | LVS_EX_ONECLICKACTIVATE );
char str1[255];
::GetPrivateProfileString("1","音乐","",str1,255,".//1.ini");
settext(str1);
}
我这样在自己类中调用就可以显示出来;
但像最上面那样调用就有错误;晕死~