Суть проблемы:
Разделить FrameWnd в SDI приложении на 3 части с помощью 2-х — горизонтального и вертикального — статических сплиттеров (получить окно вида The Bat!, VS6.0). В MSDN описан только вариант невложенного разбиения SDI-приложения сплиттерами. Или MDI.
Существует ли решение для SDI? Подскажите, пожалуйста, как это можно реализовать?
13.09.03 13:01: Перенесено модератором из 'C/C++' — ПК
Здравствуйте, 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;
}