Шаг 283 - Статический разделитель после создания проекта ручками

Преимущество статического разделителя в том, что он может в разных частях использовать разные виды. Создаем приложение как MFC AppWizard с именем TestStatic и типом SDI. Добавим ссылку на класс разделителя в класс рамки:

class CMainFrame : public CFrameWnd
{
	......
protected:  // control bar embedded members
	CStatusBar m_wndStatusBar;
	CToolBar m_wndToolBar;
	CSplitterWnd m_wndSplitter;
// Generated message map functions
	......
};

Перегрузим OnCreateClient() для создания разделителя:

BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) 
{
// TODO: Add your specialized code here and/or call the base class
	return CFrameWnd::OnCreateClient(lpcs, pContext);
}

Пока оставим так. Нам теперь нужен второй класс вида. Добавляем класс Insert - New Class с именем CTwoView и родителем CView. Теперь в коде реализации класса CMainFrame нужно добавить ссылки на эти классы видов.

// MainFrm.cpp : implementation of the CMainFrame class
//

#include "stdafx.h"
#include "TestStatic.h"

#include "MainFrm.h"

#include "TwoView.h"
#include "TestStaticView.h" 

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

А в описание класса CTestStaticView описание класса документа для GetDocument():

#include "TestStaticDoc.h"

Пора создавать разделитель:

BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) 
{
	m_wndSplitter.CreateStatic(this,1,2);
	m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CTestStaticView),
		CSize(50,50),pContext);
	return m_wndSplitter.CreateView(0,1,RUNTIME_CLASS(CTwoView),
		CSize(50,50),pContext);
}

Будет вертикальный разделитель.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 14.11.2000