问一下MFC中两个分叉窗口间怎么进行参数传递以及函数调用
我看过一些书感觉参数都是利用C***DOC传递的参数,但是只要这个方法吗?函数调用又怎么办啦?我给的那个图就是想完成的任务,大概就是左边按按键,右边进行画图之类的事情。我...
我看过一些书感觉参数都是利用C***DOC传递的参数,但是只要这个方法吗?函数调用又怎么办啦?我给的那个图就是想完成的任务,大概就是左边按按键,右边进行画图之类的事情。我本来想利用直接利用C***View* pView = (C***View*)GetDocument(),pView->***之类的方法,但是行不通。大家有什么方法吗?
大概意思就是左边点击按钮可以调用右边那个视图类的函数,比方说,右边点击一个顺时针旋转90度的按钮,调用右边视图类的OnRot90()函数。 展开
大概意思就是左边点击按钮可以调用右边那个视图类的函数,比方说,右边点击一个顺时针旋转90度的按钮,调用右边视图类的OnRot90()函数。 展开
2个回答
展开全部
//使用CSplitterWnd类
//.h
CSplitterWnd m_wndSplitter;
//重载虚函数OnCreateClient() 在该函数中创建视图
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
if(!m_wndSplitter.CreateStatic(this,1,2)) //1行2列
return FALSE;
if(!m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CLeftView),CSize(150,0),pContext))
return FALSE;
if(!m_wndSplitter.CreateView(0,1,RUNTIME_CLASS(CRightView),CSize(150,0),pContext))
return FALSE;
CRect rect;
GetWindowRect( &rect );
m_wndSplitter.SetColumnInfo(0, rect.Width()/3, 10);
m_wndSplitter.SetColumnInfo(1, rect.Width()*2/3, 10);
m_wndSplitter.RecalcLayout();
return TRUE;
}
//
CLeftView* CMainFrame::GetLeftView()
{
return (CLeftView*)m_wndSplitter.GetPane(0,0);
}
//
CRightView* CMainFrame::GetRightView()
{
return (CRightView*)m_wndSplitter.GetPane(0,1);
}
//.h
CSplitterWnd m_wndSplitter;
//重载虚函数OnCreateClient() 在该函数中创建视图
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
if(!m_wndSplitter.CreateStatic(this,1,2)) //1行2列
return FALSE;
if(!m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CLeftView),CSize(150,0),pContext))
return FALSE;
if(!m_wndSplitter.CreateView(0,1,RUNTIME_CLASS(CRightView),CSize(150,0),pContext))
return FALSE;
CRect rect;
GetWindowRect( &rect );
m_wndSplitter.SetColumnInfo(0, rect.Width()/3, 10);
m_wndSplitter.SetColumnInfo(1, rect.Width()*2/3, 10);
m_wndSplitter.RecalcLayout();
return TRUE;
}
//
CLeftView* CMainFrame::GetLeftView()
{
return (CLeftView*)m_wndSplitter.GetPane(0,0);
}
//
CRightView* CMainFrame::GetRightView()
{
return (CRightView*)m_wndSplitter.GetPane(0,1);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询