Статья:
Использование фреймов внутри диалоговых оконАвтор(ы): Артамонов Дмитрий
Дата: 26.01.2004
Представьте себе ситуацию – вы пишете MDI или SDI приложение. Уже готовы представления, выловлены все явные ошибки и всё работает. Но вам ставят задачу (начальник или, быть может, вы сами) реализовать ту же функциональность, но внутри диалогового окна. Как можно решить проблему ? Одним из вариантов решения будет создание диалогового дубля уже готового кода. Однако дублирование кода вносит множество неприятных проблем, главной из которой будет одновременная поддержка двух версий кода. Изложенный в этой статья метод позволяет задачу решить намного проще. Кроме того, этот приём позволяет без лишних усилий добавить сплиттеры внутрь диалогового окна.
Авторы:
Артамонов Дмитрий
Аннотация:
Представьте себе ситуацию – вы пишете MDI или SDI приложение. Уже готовы представления, выловлены все явные ошибки и всё работает. Но вам ставят задачу (начальник или, быть может, вы сами) реализовать ту же функциональность, но внутри диалогового окна. Как можно решить проблему ? Одним из вариантов решения будет создание диалогового дубля уже готового кода. Однако дублирование кода вносит множество неприятных проблем, главной из которой будет одновременная поддержка двух версий кода. Изложенный в этой статья метод позволяет задачу решить намного проще. Кроме того, этот приём позволяет без лишних усилий добавить сплиттеры внутрь диалогового окна.
Всем добрый день!
Меня интересует вопрос: а можно ли сделать так что бы я создал что-то типа два фрейма вверху и один внизу на ширину двух
Как я понял, в коде делаю замену этого участка:
m_wndSplitter.CreateStatic(m_pFrame2, 1, 1);
m_wndSplitter.CreateView( 0, 0, RUNTIME_CLASS(CMyView), CSize(200, 0), &ccc );
m_wndSplitter.CreateView( 0, 1, RUNTIME_CLASS(CMyView), CSize(0, 200), &ccc );
на такой:
m_wndSplitter.CreateStatic(m_pFrame2, 2, 2);
m_wndSplitter.CreateView( 0, 0, RUNTIME_CLASS(CMyView), CSize(200, 0), &ccc );
m_wndSplitter.CreateView( 0, 1, RUNTIME_CLASS(CMyView), CSize(0, 200), &ccc );
m_wndSplitter.CreateView( 1, 0, RUNTIME_CLASS(CMyView), CSize(200, 0), &ccc );
m_wndSplitter.CreateView( 1, 1, RUNTIME_CLASS(CMyView), CSize(0, 200), &ccc );
Но это создаёт 4 фрейма... А мне нужно 2 сверху и один ниже на ширину 2-х верхних
Такой код:
m_wndSplitter.CreateStatic(m_pFrame2, 2, 2);
m_wndSplitter.CreateView( 0, 0, RUNTIME_CLASS(CMyView), CSize(200, 0), &ccc );
m_wndSplitter.CreateView( 0, 1, RUNTIME_CLASS(CMyView), CSize(0, 200), &ccc );
m_wndSplitter.CreateView( 1, 0, RUNTIME_CLASS(CMyView), CSize(200, 0), &ccc );
ругается...
Как это сделать?
Спасибо за помощь