hur.cn - 华软网

 热门搜索

如何在MFC中通过LeftView向RightView发送消息

  作者:未知    来源:网络    更新时间:2010/5/30
我在MFC中创建了一个windows资源管理器气概的单文档程序,在左视图中实现了一个树,我想问一下,怎么样能通过点击树的节点来控制右视图显示的信息?我是菜鸟,希望解释的通俗一点。
---华软 网友回答---
获得右视图指针,然后修改你要修改的对象,然后刷新。
---华软网友回复---
你这个是切分视图吗?能够先获得CMainFrame指针,一般切分视图都是用CSplitterWnd  wndSplitter来措置惩罚的,而CSplitterWnd 有一个方法:GetPane能够获得视图指针。
---华软网友回复---
引用 2 楼 wltg2001 的回复:
你这个是切分视图吗?能够先获得CMainFrame指针,一般切分视图都是用CSplitterWnd wndSplitter来措置惩罚的,而CSplitterWnd 有一个方法:GetPane能够获得视图指针。

获得指针以后是否是要编写消息啊?另有获得指针的代码应该加在那里呢?
---华软网友回复---
引用 3 楼 lanve1 的回复:
引用 2 楼 wltg2001 的回复:
你这个是切分视图吗?能够先获得CMainFrame指针,一般切分视图都是用CSplitterWnd wndSplitter来措置惩罚的,而CSplitterWnd 有一个方法:GetPane能够获得视图指针。

获得指针以后是否是要编写消息啊?另有获得指针的代码应该加在那里呢?

你都有指针了,就能够去发消息了。
---华软网友回复---
谢谢列位,虽然还没有完全解决,然则有一定的思绪了
---华软网友回复---
楼主能够去vckbase,里面有些例子能够参照下。
---华软网友回复---
在MainFrame中加2个函数:
////
CLeftView* CMainFrame::GetLeftPane()
{
CWnd* pWnd = m_wndSplitter.GetPane(0, 0);
CLeftView* pView = DYNAMIC_DOWNCAST(CLeftView,pWnd);
return pView;
}
//
CHMI_manView* CMainFrame::GetRightPane()
{
CWnd* pWnd = m_wndSplitter.GetPane(0, 1);
CHMI_manView* pView = DYNAMIC_DOWNCAST(CHMI_manView, pWnd);
return pView;
}
//调用时:
////右调左:
void CHMI_manView::ExpandLeftTree(char * dir)
{
// get LeftTree
CMainFrame* pMain=(CMainFrame*)AfxGetMainWnd();// m_pMainWnd;
CLeftView * pLeft=pMain->GetLeftPane();
CTreeCtrl&  LeftTree=pLeft->GetTreeCtrl();
//左调右
DROPEFFECT CLeftView::OnDragEnter(COleDataObject* pDataObject, DWORD dwKeyState, CPoint point) 
{
// TODO: Add your specialized code here and/or call the base class
CMainFrame*   pMain=(CMainFrame*)AfxGetMainWnd();
CHMI_manView* pView=pMain->GetRightPane();
CListCtrl&    RightCtrl=pView->GetListCtrl();


---华软网友回复---
嗯,上面很详细,+1      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。