隐藏静态拆分窗口
想隐藏静态拆分窗口,把左边那列隐藏.Build成功后运行,窗口没有反应,不知道是怎么回事?
在MainFrm.cpp中加入:
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
if (!m_wndSplitter.CreateStatic(this, 1, 2))
return FALSE;
m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CLeftView), CSize(100, 100), pContext);
m_wndSplitter.CreateView(0, 1, RUNTIME_CLASS(CRightView), CSize(100, 100), pContext);
return TRUE;
}
void CMainFrame::OnHideWin()
{
m_wndSplitter.SetActivePane(0,1);
CWnd* pPaneHide=m_wndSplitter.GetPane(0,0);
ASSERT(pPaneHide!=NULL);
pPaneHide-> ShowWindow(SW_HIDE);
pPaneHide-> SetDlgCtrlID(ID_HIDE_COLUMN);
CWnd* pPane=m_wndSplitter.GetPane(0,1);
pPane-> SetDlgCtrlID(m_wndSplitter.IdFromRowCol(0,0));
m_pColInfo[1].nCurSize=m_pColInfo[0].nCurSize;
CSplitterWnd::RecalcLayout;
}
并在MainFrm.h中加入:
public:
CSplitterWnd m_wndSplitter;
CSplitterWnd::CRowColInfo m_pColInfo[5];
int ID_HIDE_COLUMN;
在CLeftView和CRightView都是CView的派生类.
请高手指点下...
[解决办法]
去codeproject上去看下,有一个隐藏切分窗口的例子.
[解决办法]
SetRowInfo()设置大小
[解决办法]
我做的隐藏是直接继承CSPLITTERWND,通过修改成员变量来实现的.呵.