将mainfrme用CSplitterWnd类(m_UpDownSplitter)分成上下两部分,如何处理主窗口的OnSize()消息,使上下两部分的相对位置始终不变?我如下写,但不对:
void CMainFrame::OnSize(UINT nType, int cx, int cy) 
{
CFrameWnd::OnSize(nType, cx, cy); if(this->m_UpDownSplitter.m_hWnd)////表示如果m_UpDownSplitter的句柄非空时,再改变分割视图的位置,尽管如此,还是会出现内存错误。
{
CRect rect;
GetClientRect(&rect);
m_UpDownSplitter.SetRowInfo(0,rect.Height()/10*9,0);
m_UpDownSplitter.SetRowInfo(1,rect.Height()/10,0);
m_UpDownSplitter.RecalcLayout();
}
...}
但是,上面代码虽然可以编译通过,但执行时会弹出对话框(内存不可写),我应该怎么办呢?其中,我的m_UpDownSplitter是在CMainFrame::OnCreateCleint()中建立分割视图的。