为什么我在创建splitter窗口时,总会断言失败

cmpfish 2011-10-09 04:21:30
1. 在CMainFrame类中声明两个protected CSplitterWnd m_wndSpMain, m_wndSpSub;成员.

2. 在CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)下生成:
m_wndSpMain.CreateStatic(this,1,2,WS_CHILD|WS_VISIBLE,AFX_IDW_PANE_FIRST);
m_wndSpMain.CreateView(0,1,RUNTIME_CLASS(CtoolBarView),CSize(100,100),pContext);

总是会在CWnd* CSplitterWnd::GetPane(int row, int col) const中失败:
CWnd* pView = GetDlgItem(IdFromRowCol(row, col));
ASSERT(pView != NULL); // panes can be a CWnd, but are usually CViews

pView总是为空。不知道这是为什么?望请帮忙看下。
...全文
79 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
cmpfish 2011-10-09
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 tearywang 的回复:]

m_wndSpMain只创建了一个View啊。
[/Quote]
是的。是的。
是我大意了。没往这一点上考虑。
呵呵,非常感谢。
TearyWang 2011-10-09
  • 打赏
  • 举报
回复
m_wndSpMain只创建了一个View啊。
cmpfish 2011-10-09
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 pop1210 的回复:]

引用楼主 cmpfish 的回复:
1. 在CMainFrame类中声明两个protected CSplitterWnd m_wndSpMain, m_wndSpSub;成员.

2. 在CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)下生成:
m_wndSpMain.CreateStati……
[/Quote]
哈,你说的对的。
的确少了个view!
cmpfish 2011-10-09
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 pop1210 的回复:]

引用楼主 cmpfish 的回复:
1. 在CMainFrame类中声明两个protected CSplitterWnd m_wndSpMain, m_wndSpSub;成员.

2. 在CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)下生成:
m_wndSpMain.CreateStati……
[/Quote]
有的, 感觉问题不在这里,所以省略了:
/* /// for second pane
if(!m_wndSpSub.CreateStatic(&m_wndSpMain,1,2,WS_CHILD|WS_VISIBLE,m_wndSpMain.IdFromRowCol(0,1)))
{
TRACE0("Failed to create second pane\n");
return FALSE;
}
*/
//post the second pane with view
/* if(!m_wndSpSub.CreateView(0,0,RUNTIME_CLASS(CSpwEView),CSize(50,50),pContext))
{
TRACE0("Failed to create third pane\n");
return FALSE;
}
*/
pop1210 2011-10-09
  • 打赏
  • 举报
回复
[Quote=引用楼主 cmpfish 的回复:]
1. 在CMainFrame类中声明两个protected CSplitterWnd m_wndSpMain, m_wndSpSub;成员.

2. 在CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)下生成:
m_wndSpMain.CreateStatic(this,1,2,WS_CHIL……
[/Quote]
少了一个View啊,你的m_wndSpMain.CreateView(0,0..呢??
fandh 2011-10-09
  • 打赏
  • 举报
回复
row col的值都正常么?
一般取得这些view,都到doc里面取,doc里面有view的列表!

15,979

社区成员

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

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