Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Янг Майкл Дж. -> "Visual С++ 6. Полное руководство: В 2 т.(том2)" -> 80

Visual С++ 6. Полное руководство: В 2 т.(том2) - Янг Майкл Дж.

Янг Майкл Дж. Visual С++ 6. Полное руководство: В 2 т.(том2) — Бином, 2006. — 530 c.
Скачать (прямая ссылка): vicualcc2006t2.djvu
Предыдущая << 1 .. 74 75 76 77 78 79 < 80 > 81 82 83 84 85 86 .. 173 >> Следующая

IMPLEMENTEDYNCREATE(CMiniDrawDoc, CDocument)
BEGIN_MESSAGE_MAP(CMiniDrawDoc, CDocument) //((AFX_MSG__MAP(CMiniDrawDoc)
ON__COMMAND(ID_E DIT_CLEAR_ALL, OnEditClearAll)
ON_UPDATE_COMMAND_UI(ID_EDIT_CLEAR_ALL, OnUpdateEditClearAll) ON_COMMAND(ID_EDIT_UNDO, OnEditUndo)
ON_UPDATE_COMMAND_UI(ID_EDIT_UNDO, OnUpdateEditUndo) //}}AFX_MSG_MAP END_MESSAGE_MAP()
1111111111111111111111111111111111111111111111111111111111111111111111 II Конструктор/деструктор класса CMiniDrawDoc
CMiniDrawDoc::CMiniDrawDoc{) {
// TODO: Здесь добавьте код конструктора
}
CMiniDrawDoc::~CMiniDrawDoc()
{
}
BOOL CMiniDrawDoc::OnNewDocument() {
if (!CDocument::OnNewDocument()) return FALSE;
// TODO: Здесь добавьте код повторной инициализации
// (SDI-приложения будут повторно использовать этот документ)
return TRUE;
//11/1/11/II111II11111/II1111IIП1111111111/111111П111111111111111111 II Сериализация класса CMiniDrawDoc
void CMiniDrawDoc::Serialize(CArchives ar) {
if (ar.IsStoring()) {
// TODO: здесь добавьте код сохранения m_FigArray.Serialize (ar) ;
}
else
(
// TODO: здесь добавьте код загрузки m_FigArray.Serialize (ar);
}
}
////////////////////////////////////////////////////////////////////// // Диагностика класса CMiniDrawDoc
#ifdef _DEBUG
void CMiniDrawDoc::AssertValid() const (
CDocument::AssertValid();
}
void CMiniDrawDoc::Dump(CDumpContextS dc) const {
CDocument::Dump(dc) ;
}
#endif //_DEBUG
1111111111111111111111111111111111/1111111111111111111 /111111111111111 II Другие функции класса CMiniDrawDoc
void CMiniDrawDoc::AddFigure (CFigure *PFigure) {
m_FigArray.Add (PFigure);
SetModifiedFlag О; }
CFigure *CMiniDrawDoc::GetFigure (int Index) {
if (Index < 0 I I Index > m_FigArray.GetUpperBound ()) return 0;
return (CFigure *)m_FigArray.GetAt (Index); }
int CMiniDrawDoc::GetNumFigs () {
return m_FigArray.GetSize (); }
void CMiniDrawDoc::DeleteContents() {
// TODO: Здесь добавьте собственный код обработчика // и/или вызов базового класса
int Index = m_FigArray.GetSize О; while (Index—)
delete m_FigArray.GetAt (Index); m_FigArray.RemoveAll ();
CDocument::DeleteContents();
}
void CMiniDrawDoc::OnEditClearAll() {
// TODO: Здесь добавьте собственный код обработчика
DeleteContents ();
UpdateAllViews (0); SetModif iedFlag О;
}
void CMiniDrawDoc::OnUpdateEditClearAll(CCmdUI* pCmdUI) {
// TODO: Здесь добавьте собственный код обработчика pCmdUI->Enable (m_FigArray.GetSize ());
>
void CMiniDrawDoc::OnEditUndoO
{
// TODO: Здесь добавьте собственный код обработчика
int Index = m_FigArray.GetUpperBound (); if (Index > -1)
{
delete m_FigArray.GetAt (Index); m_FigArray.RemoveAt (Index);
}
UpdateAllViews (0); SetModifiedFlag ();
)
void CMiniDrawDoc::OnUpdateEditUndo(CCmdUI* pCmdUI) {
// TODO: Здесь добавьте собственный код обработчика
pCmdUI->Enable (m_FigArray.GetSize ()); }
// Реализация классов фигур:
IMPLEMENT_SERIAL (CFigure, CObject, 2)
CRect CFigure::GetDimRect () {
return CRect
(min (m_Xl, m_X2), min (m_Yl, m_Y2), max (m_Xl, m_X2) + 1, max (m_Yl, m_Y2) + 1);
}
void CFigure::Serialize (CArchiveS ar) {
if (ar.IsStoring ())
ar « m_Xl « m_Yl « m_X2 « m_Y2 « m_Color; else
ar » m_Xl » m_Yl » m_X2 » m_Y2 » m_Color;
)
IMPLEMENT_SERIAL (CLine, CFigure, 2)
CLine:-.CLine (int XI, int Yl, int X2, int Y2, COLORREF Color, int Thickness) (
m_Xl = XI;
m_Yl = Yl;
m_X2 = X2;
m_Y2 = Y2;
m__Color = Color;
m_Thickness = Thickness;
}
void CLine::Serialize (CArchiveS ar) f
CFigure::Serialize (ar); if (ar.IsStoring ())
ar << m_Thickness; else
ar >> m_Thickness;
void CLine::Draw (CDC *PDC) {
CPen Pen, *POldPen;
// выберите перо/кисть:
Pen.CreatePen (PS_SOLID, mJThickness, m_Color); POldPen = PDC->SelectObject (&Pen);
// нарисуйте фигуру: PDC->MoveTo (m_Xl, m_Yl); PDC->LineTo (m_X2, m_Y2);
// удалите перо/кисть: PDC->SelectObject (POldPen); }
IMPLEMENT_SERIAL (CRectangle, CFigure, 2)
CRectangle::CRectangle (int XI, int Yl, int X2, int Y2, COLORREF Color, int Thickness) (
m_Xl = XI;
m_Yl = Yl;
m_X2 = X2;
m_Y2 = Y2;
m_Color = Color;
m_Thickness = Thickness;
}
void CRectangle::Serialize (CArchive& ar) I
CFigure::Serialize (ar) ; if (ar.IsStoring ())
ar << m_Thickness; else
ar >> m_Thickness ;
}
void CRectangle::Draw (CDC *PDC) (
CPen Pen, *POldPen;
// выберите перо/кисть:
Pen.CreatePen (PS_INSIDEFRAME, m_Thickness, mJColor); POldPen = PDC->SelectObject (&Pen); PDC->SelectStockObject (NULL_BRUSH);
// нарисуйте фигуру:
PDC->Rectangle (m_Xl, m Yl, m_X2, m_Y2);
}
// удалите перо/кисть: PDC->SelectObject (POldPen); }
IMPLEMENT_SERIAL (CRectFill, CFigure, 2)
CRectFill::CRectFill (int XI, int Yl, int X2, int Y2, COLORREF Color) {
m_Xl = min (XI, X2); m_Yl = min (Yl, Y2) ; rn_X2 = max (XI, X2) ; m_Y2 = max (Yl, Y2); rn_Color = Color; }
void CRectFill::Draw (CDC *PDC) {
CBrush Brush, *P01dBrush; CPen Pen, *P01dPen;
// выберите перо/кисть:
Pen.CreatePen (PS_INSIDEFRAME, 1, rn_Color) ; POldPen = PDC->SelectObject (SPen); Brush.CreateSolidBrush (m_Color); POldBrush = PDC->SelectObject (SBrush);
Предыдущая << 1 .. 74 75 76 77 78 79 < 80 > 81 82 83 84 85 86 .. 173 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100