最近使用VC2010做界面,遇到一个问题,想请教一下大家。
界面如下图,通过想点击左侧树节点更新中间的列表,中间列表视图CtesttView的基类是CListView。
左侧树视图对应的类CViewTree中添加了响应OnTvnSelchanged,可以正常响应::AfxMessageBox( str);弹出对话框。
CtesttView中添加了函数refreshlist(CString listname), OnInitialUpdate()中调用refreshlist函数可以正常显示表格,
然而在CViewTree中,语句CtesttView *pRight=(CtesttView*)pMain->GetActiveView();无法获得表格视图的指针,从而导致pRight->refreshlist(str);无法执行。
请教一下大家如何才能正确的获得中间列表视图的指针,或者有什么方法可以更新中间的列表呢,谢谢!
代码如下:
void CViewTree::OnTvnSelchanged(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMTREEVIEW pNMTreeView = reint erpret_cast<LPNMTREEVIEW>(pNMHDR);
// TODO: Add your control notification handler code here
CTreeCtrl* pTreeCtrl = this;
HTREEITEM hSelect = pTreeCtrl->GetSelectedItem();
CString str=pTreeCtrl->GetItemText (hSelect);
::AfxMessageBox( str);
CMainFrame *pMain=(CMainFrame*)AfxGetMainWnd();
CtesttView *pRight=(CtesttView*)pMain->GetActiveView();
pRight->refreshlist(str);
*pResult = 0;
}