Полезно за вас: Речник | Игри | Новини | Фирми | Рецепти | Обяви
Начало на реферати

Разцепени изображения-динамични и статични


Информационни технологии | 2009-12-04 | 103 сваляния

38.Разцепени изображения-динамични и статични.Пример.


Ето връзката между елементите на split изображението:

Split линията може да бъде хоризонтална или вертикална.В SDI това е еднствения начин да имаме повече от едно изображение. В SDI прозореца със сплитерите е дъщерен на MainFrame,а в на MDI Childframe.

Има два вида сплитери: динамични и статични.

Динамичните сплитери дават възможност в един прозорез да се наблюдават различни части на обекта. Създават се и се унищожават динамично.Ако разделим хоризонтално, по вертикала ще имаме различни Scrollbars, ако разделяме по вертикала ще имаме 2 различни хоризонтални.Всички панели по подразбиране се базират на едно изображение, но не е невъзможно са де променят.Това става като един сплитер има метод, чрез който всеки оплитер е елемент на различно View.Този метод е на CsplitterView.

Статичните сплитери- в тях панелите се указват преди създаване на приложение и тогава се създават,т.е. броя панели се запазва.Всеки панел се базира на отделно указано изображение(няма подразбиране).

Създаване на приложение поддържащо динамични сплитери:

1. деклариране на нова пром. към CChildFrame ( или CMainFrame):

// Implementation

private:

CSplitterWnd m_wndSplitter;

2. предефиниране на виртуалната OnCreateClient() на рамката :

BOOL CChildFrame:: OnCreateClient( LPCREATESTRUCT lpcs, CCreateContext* pContext)

{ CSize size (10, 10);

Return m_wndSplitter.Create ( this, 2,1, size, pContext); }


родителя на прозореца със сплитери прозореца рамка

максималния брой панели на които може да се раздели

максималната ширина и височина при които панелите се създават


стандартна структура, едно от полетата й е име на класа на изгледа, използван за панелите.

3. CSplitView::OnDraw()

Възможно е да се създадът динамични сплитери в статични.

създаване на прил., поддържащо статично split изображение:

  • в класа на прозореца рамка (CMainFrame или CChildFrame): CSplitterWnd m_wndSplitter;

  • предефиниране :

BOOL CChildFrame::OnCreateClient(LPCREATESTRUCT lpc, CreateContext* pContext)

{

if (m_wndSplitter.CreateStatic(this, 2, 1) == FALSE)

// код при неуспех

// следва създаване на изглед за всеки статичен панел от прозореца:

BOOL bCreated = m_wndSplitter.CreateView( 0,0,);

bCreated = m_wndsplitter.CreateView( 1, 0, RUNTIME_CLASS(CsplitView),

// коорд. (долу ляво) и изглед за втория split view

);

SetActiveView((CView*) m_wndsplitter.GetPanel(0,0); //активен панел

Return TRUE;

}



37 Различни типове документи в едно MDI приложение.


Съвсем спокойно документите могат да са от различни типове. Обикновено този процес се стартира от File/New от менюто.Първо трябва да имаме отделен документен шаблон за всеки тип документ.

  • създаваме подклас за документ и подклас за изглед-например CPiramDoc и CpiramView.Класовете са динамично създаваеми.

  • за новия тип са нужни 4 нови ресурса-икона, меню, таблица и акселератори и документен низ.Всички те имат общ ID например IDR_PIRAMTYPE.

  • ако е нужно се създава и собствена дъщерна рамка за новия тип документ.

  • модифицира InitInstance() за новия документен шаблон.


CMultiDocTemplate* pDocTemplate;

pDocTemplate = new CMultiDocTemplate( описаните по-долу 4 параметъра);

  • ресурсен ID.

  • Указател към CRuntimebg-BG">за документа.

  • Указател към CRuntimebg-BG">рамката.

  • Указател към CRuntimebg-BG">за изгледа ( CPiramView).

регистрирате новия шаблон :

AddDocTemplate( pDocTemplate);

Разцепени изображения-динамични и статични

Добави своя коментар:



Тагове от реферата: , , , , ,