CSplitter в SDI
От: bruit Россия  
Дата: 12.09.03 21:04
Оценка:
Суть проблемы:
Разделить FrameWnd в SDI приложении на 3 части с помощью 2-х — горизонтального и вертикального — статических сплиттеров (получить окно вида The Bat!, VS6.0). В MSDN описан только вариант невложенного разбиения SDI-приложения сплиттерами. Или MDI.

Существует ли решение для SDI? Подскажите, пожалуйста, как это можно реализовать?


13.09.03 13:01: Перенесено модератором из 'C/C++' — ПК
Re: CSplitter в SDI
От: CasperTKV Украина  
Дата: 12.09.03 22:22
Оценка:
Здравствуйте, bruit, Вы писали:

B>Суть проблемы:

B>Разделить FrameWnd в SDI приложении на 3 части с помощью 2-х — горизонтального и вертикального — статических сплиттеров (получить окно вида The Bat!, VS6.0). В MSDN описан только вариант невложенного разбиения SDI-приложения сплиттерами. Или MDI.

B>Существует ли решение для SDI? Подскажите, пожалуйста, как это можно реализовать?



// MainFrame.h
class CMainFrame : public CFrameWnd
{
...
protected:
    CSplitterWnd m_wndSplitter1;
    CSplitterWnd m_wndSplitter2;
...
}

// MainFrame.cpp
#include "MyView.h"
...
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
  if(!m_wndSplitter1.CreateStatic(this, 1, 2))
  {
    TRACE("Failed to create m_wndSplitter2");
    return FALSE;
  }
  if(!m_wndSplitter1.CreateView(0, 1, pContext->m_pNewViewClass,
     CSize(100,100), pContext))
  {
    TRACE("Failed to create MessageView");
    return FALSE;
  }
  if(!m_wndSplitter2.CreateStatic(&m_wndSplitter1, 2, 1,
                WS_CHILD | WS_VISIBLE,
                m_wndSplitter1.IdFromRowCol(0,0)))
  {
    TRACE("Failed to create m_wndSplitter1");
    return FALSE;
  }
  if(!m_wndSplitter2.CreateView(0, 0, RUNTIME_CLASS(CMyView),
      CSize(200,200), pContext))
  {
    TRACE("Failed to create ChernovikView");
    return FALSE;
  }
  if(!m_wndSplitter2.CreateView(1, 0, RUNTIME_CLASS(CMyView),
     CSize(0,0), pContext))
  {
    TRACE("Failed to create ChernovikView");
    return FALSE;
  }
 return TRUE;
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.