Stworzylem sobie w Visual Studio 2005 nowy projekt aplikacji wizardem (SDI, dok/wid, Windows Explorer, spliter). No i wygenerował mi się piekny spliter tylko, że statyczny. A ja potrzebuję dynamicznego i chcę to zmienić.

W pliku ramki wygenerował się następujący kod splitera statycznego:

BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
  // create splitter window
  if (!m_wndSplitter.CreateStatic(this, 1, 2))
    return FALSE;

  if (!m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CLeftView), CSize(100, 100), pContext) || 
  !m_wndSplitter.CreateView(0, 1, RUNTIME_CLASS(CRightView), CSize(100, 100), pContext))
  {
    m_wndSplitter.DestroyWindow();
    return FALSE;
  }

  return TRUE;
}

Próbowałem zmienić to na dynamiczny mniej więcej tak:

BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
  // create splitter window
  if (!m_wndSplitter.Create(this, 2, 1, CSize(10, 10), pContext))
  {
    TRACE0("Failed to create split bar ");
    return FALSE;    // failed to create
  }
  return TRUE;
}

No i oczywiscie to nie dziala. Prawdopodobnie trzeba cos jeszcze zmienic, moze cos z widokami?
Jesli ktos sie orientuje w czym rzecz, prosze o wskazowki.
</cpp>

Dodam tylko ze pojawia sie brzyskie okienko z jakims bledem:

Debug Assertion Failed
f:/sp/vctools/vc7libs/ship/atlmfc/src/mfc/winsplit.cpp
On Line: 331

i tyle..