MFC分割窗口的错误,求高人指点!急

BOOLCMainFrame::OnCreateClient(LPCREATESTRUCTlpcs,CCreateContext*pContext){//TODO:在此添... BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
// TODO: 在此添加专用代码和/或调用基类
//**************************************
CRect rect;
GetClientRect(&rect);

m_splitter.CreateStatic(this,1,2);
m_splitter.CreateView(0,1,pContext->m_pNewViewClass
,CSize(rect.Width()/2,rect.Height()/2)
,pContext);
m_splitter.CreateView(0,0,pContext->m_pNewViewClass
,CSize(rect.Width()/2,rect.Height()/2)
,pContext);

m_splitter.SetActivePane(0,0);
//**************************************

return true;//CMDIFrameWndEx::OnCreateClient(lpcs, pContext);
}
为什么运行到m_splitter.CreateView(0,1,pContext->m_pNewViewClass
,CSize(rect.Width()/2,rect.Height()/2)
,pContext);
就说我 “0x0041a29d 处有未经处理的异常: 0xC0000005: 读取位置 0x00000000 时发生访问冲突”?求指点!这是个多文档应用程序
展开
 我来答
陈宗权8d804
2012-01-10 · TA获得超过3766个赞
知道小有建树答主
回答量:1159
采纳率:0%
帮助的人:959万
展开全部
看看pContext或者pContext->m_pNewViewClass是否是空指针。
如果不是,就只能跟踪调试汇编代码找问题了。
追问
你好!我调试了一个下,发现pContext确实是空。求教处理方法?
追答
那你调用m_splitter.CreateView的时候就别用pContext->m_pNewViewClass了,用你自己为子窗口定义的视图类的类名的运行时类型:比如你左边的子窗口想用视图类CLeftView,右边的子窗口想用视图类CRightView,那么就分别用RUNTIME_CLASS(CLeftView)和RUNTIME_CLASS(CRightView)代替pContext->m_pNewViewClass。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式