C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 153 - Много элипсов шаг 2 / MFC шаг за шагом / Visual C++

Шаг 153 - Много элипсов шаг 2

Пора встраивать код класса в каркас MFC. Все данные должны храниться в классе документа, он у нас CTestEllipseDoc поэтому в заголовочный файл включаем описание нашего класса.

// TestEllipseDoc.h : interface of the CTestEllipseDoc class
//
///////////////////////////////////////////////////////////////

#if !defined(AFX_TESTELLIPSEDOC_H__304EAAEB_FB25_11D3_B050_000001260696__INCLUDED_)
#define AFX_TESTELLIPSEDOC_H__304EAAEB_FB25_11D3_B050_000001260696__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "ContainerEllipce.h"

И переменную класса в классе документа.

class CTestEllipseDoc : public CDocument
{
........
public:
	CContainerEllipce cEllipce;
	virtual ~CTestEllipseDoc();
........

Первое, что делаем это в новом документе обнуляем массив и добавляем новый эллипс.

BOOL CTestEllipseDoc::OnNewDocument()
{
	if (!CDocument::OnNewDocument())
		return FALSE;

	cEllipce.Clear(); 
	cEllipce.Add(CRect(10,10,100,100));

        return TRUE;
}

Зачем я сразу добавляю эллипс ??? Так его можно будет отредактировать потом. А зачем Вам пустой документ ????

Для сохранения документа нужно тоже писать код.

///////////////////////////////////////////////
// CTestEllipseDoc serialization

void CTestEllipseDoc::Serialize(CArchive& ar)
{
	if (ar.IsStoring())
	{
		ar << cEllipce.GetSize(); 
		for (int x=0;x > i ;
		CRect cr;
		for (int x=0;x > cr;
		cEllipce.Add(cr);
		}
	}
}

Идея простая, сначала записать сколько эллипсов, а потом и сами данные. При чтении также. Читаем сколько и потом по одному добавляем в массив.

Рисовать будет функция Draw в классе вида.

///////////////////////////////////////////////
// CTestEllipseView drawing

void CTestEllipseView::OnDraw(CDC* pDC)
{
	CTestEllipseDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	
	pDoc->cEllipce.Draw(pDC);      
}

Она просто вызывает заранее подготовленную функцию рисование.


| |
Автор Каев Артем.
[AD]