*** 切分窗口中的问题 ***

qq_13939330 2004-08-08 12:05:27
BOOL XXXX::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
if (!m_wndSplitter1.CreateStatic(this, 1, 2))
{
return FALSE;
}


if (!m_wndSplitter1.CreateView(0, 0, RUNTIME_CLASS(CGameView), CSize(500, 0), pContext) )
{
m_wndSplitter1.DestroyWindow();
return FALSE;
}



if (!m_wndSplitter2.CreateStatic(&m_wndSplitter1, 2, 1,WS_CHILD|WS_VISIBLE,m_wndSplitter1.IdFromRowCol(0, 1)))
{
return FALSE;
}
if (!m_wndSplitter2.CreateView(0, 0, RUNTIME_CLASS(CClientView), CSize(600, 300), pContext) ||
!m_wndSplitter2.CreateView(1, 0, RUNTIME_CLASS(CSysMsgView), CSize(600, 0), pContext))
{
m_wndSplitter2.DestroyWindow();
return FALSE;
}

return CFrameWnd::OnCreateClient(lpcs, pContext);
}
_______________
| |
| |
|_______|
| |
| |
______|_______|



最后我要得到右下角的视图:
CWnd* pWnd = m_wndSplitter2.GetPane(1, 0);
CXXXXView* pView = DYNAMIC_DOWNCAST(CXXXXView, pWnd);
return pView;

这样为什么会出错呢??

我调到
CWnd* CSplitterWnd::GetPane(int row, int col) const
{
ASSERT_VALID(this); <--------------出错XXXXXXXXXXXXXXXXXXXXX

CWnd* pView = GetDlgItem(IdFromRowCol(row, col));
ASSERT(pView != NULL); // panes can be a CWnd, but are usually CViews
return pView;
}
...全文
112 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
flyelf 2004-08-09
  • 打赏
  • 举报
回复
不要调用CFrameWnd::OnCreateClient(...);
Kudeet 2004-08-08
  • 打赏
  • 举报
回复
在OnCreateClient函数的最好要
return TRUE;
flyelf 2004-08-08
  • 打赏
  • 举报
回复
return CFrameWnd::OnCreateClient(lpcs, pContext);===>
return TRUE;
qq_13939330 2004-08-08
  • 打赏
  • 举报
回复
CFrameWnd::OnCreateClient(lpcs, pContext);
return TRUE;

这样也不行呀?这应该和那个没关系呀!

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧