切分窗口后用onsize控制比例 可出现问题 不知道怎么回事
MFCSDI.exe 中的 0x782b8375 (mfc80d.dll) 处未处理的异常: 0xC0000005: 写入位置 0x00000004 时发生访问冲突
在线等呀 BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
// TODO: 在此添加专用代码和/或调用基类
CRect rect;
GetClientRect(&rect);
m_wndSplitter.CreateStatic(this, 2, 2 );
m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CshowView1), CSize(rect.Width()/2,rect.Height()/2), pContext);
m_wndSplitter.CreateView(0, 1, RUNTIME_CLASS(CshowView2), CSize(rect.Width()/2,rect.Height()/2), pContext);
m_wndSplitter.CreateView(1, 0, RUNTIME_CLASS(CMshowView3), CSize(rect.Width()/2,rect.Height()/2), pContext);
m_wndSplitter.CreateView(1, 1, RUNTIME_CLASS(CshowView4), CSize(rect.Width()/2,rect.Height()/2), pContext);
m_bSplitterCreated=TRUE;
return TRUE;
}void CMainFrame::OnSize(UINT nType, int cx, int cy)
{
CFrameWnd::OnSize(nType, cx, cy);
CRect rect1; GetClientRect(&rect1); if (m_bSplitterCreated) {
m_wndSplitter.SetRowInfo(0,rect1.Height()/2,10);(出错)
m_wndSplitter.SetRowInfo(1,rect1.Height()/2,0);
m_wndSplitter.SetColumnInfo(0,rect1.Width()/2,0);
m_wndSplitter.SetColumnInfo(1,rect1.Width()/2,0); }
m_wndSplitter.RecalcLayout();
}
MFCSDI.exe 中的 0x782b8375 (mfc80d.dll) 处未处理的异常: 0xC0000005: 写入位置 0x00000004 时发生访问冲突
在线等呀 BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
// TODO: 在此添加专用代码和/或调用基类
CRect rect;
GetClientRect(&rect);
m_wndSplitter.CreateStatic(this, 2, 2 );
m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CshowView1), CSize(rect.Width()/2,rect.Height()/2), pContext);
m_wndSplitter.CreateView(0, 1, RUNTIME_CLASS(CshowView2), CSize(rect.Width()/2,rect.Height()/2), pContext);
m_wndSplitter.CreateView(1, 0, RUNTIME_CLASS(CMshowView3), CSize(rect.Width()/2,rect.Height()/2), pContext);
m_wndSplitter.CreateView(1, 1, RUNTIME_CLASS(CshowView4), CSize(rect.Width()/2,rect.Height()/2), pContext);
m_bSplitterCreated=TRUE;
return TRUE;
}void CMainFrame::OnSize(UINT nType, int cx, int cy)
{
CFrameWnd::OnSize(nType, cx, cy);
CRect rect1; GetClientRect(&rect1); if (m_bSplitterCreated) {
m_wndSplitter.SetRowInfo(0,rect1.Height()/2,10);(出错)
m_wndSplitter.SetRowInfo(1,rect1.Height()/2,0);
m_wndSplitter.SetColumnInfo(0,rect1.Width()/2,0);
m_wndSplitter.SetColumnInfo(1,rect1.Width()/2,0); }
m_wndSplitter.RecalcLayout();
}
囧把这句放在你的if (m_bSplitterCreated)语句里面去
谢谢了