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

 

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

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

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

а также реализации функций CLine: :Draw, CLine: : Serialize И CLine: :GetDimRect. Затем добавьте в конце файла следующие строки для реализации функций-членов классов фигур.
// реализация классов фигур:
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) {
i_Xl = XI
_Y1 = Yl
_X2 = X2
Y2 = Y2
m_Color = Color; m_Thickness = Thickness; }
void CLine::Serialize (CArchiveS ar) {
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, m_Thickness, m_Color); POldPen = PDC->SelectObject (fiPen);
// нарисуйте фигуру: 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 XI = XI;
m_Yl = Yl;
m_X2 = X2;
m_Y2 = Y2;
m_Color = Color;
m_Thickness = Thickness;
}
void CRectangle::Serialize (Carchive& ar)
{
CFigure::Serialize (ar); if (ar.IsStoring ())
ar « m Thickness; else
ar » m_Thickness;
}
void CRectangle::Draw (CDC *PDC)
{
CPen Pen, *P01dPen;
// выберите перо/кисть:
Pen.GreatePen (PS_INSIDEFRAME, m_Thickness, m_Color); POldPen = PDC->SelectObject (SPen); PDC->SelectStockObject (NOLL_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); m__X2 = max (XI, X2) ; m_Y2 = max (Yl, Y2); m_Color = Color; }
void CRectFill:-.Draw (CDC *PDC) {
CBrush Brush, *P01dBrush; CPen Pen, *P01dPen;
// выберите перо/кисть:
Pen.CreatePen (PS_INSIDEERAME, 1, m_Color); POldPen = PDC->SelectObject (fiPen); Brush.CreateSolidBrush (m_Color); POldBrush = PDC->SelectObject (fiBrush);
// нарисуйте фигуру:
PDC->Rectangle (m_Xl, m_Yl, m_X2, m_Y2);
// уберите перо/кисть:
PDC->SelectObject (POldPen); PDC->SelectObject (POldBrush); }
IMPLEMENT_SERIAL (CRectRound, CFigure, 2)
CRectRound::CRectRound (int XI, int Yl, int X2, int Y2, COLORREF Color, int Thickness) {
m_Xl = min (XI, X2); m_Yl = min (Yl, Y2) ; m_X2 = max (XI, X2); m_Y2 = max (Yl, Y2); m_Color = Color; m_Thickness = Thickness; )
void CRectRound::Serialize (CArchiveS ar) {
CFigure::Serialize (ar) ; if (ar.IsStoring ())
ar « m_Thickness; else
ar » m_Thickness ;
}
void CRectRound::Draw (CDC *PDC) (
CPen Pen, *POldPen;
// выберите перо/кисть:
Pen.CreatePen (PS_INSIDEFRAME, m_Thickness, m_Color); POldPen = PDC->SelectObject (fiPen); PDC->SelectStockObject (NULL_BRUSH);
// нарисуйте фигуру:
int SizeRound = (m_X2 - m_Xl + m_Y2 - m_Yl) / 6; PDC->RoundRect (m XI, m Yl, m_X2, m_Y2, SizeRound, SizeRound);
// уберите перо/кисть: PDC->SelectObject (POldPen); )
IMPLEMENT_SERIAL (CRectRoundFill, CFigure, 2)
CRectRoundFill::CRectRoundFill (int XI, int У1, int X2, int Y2, COLORREF Color) {
m_Xl = min (XI, X2); m_Yl = min (Yl, Y2); m_X2 = max (XI, X2); m_Y2 = max (Yl, Y2); m_Color = Color; }
void CRectRoundFill::Draw (CDC *PDC) (
CBrush Brush, *P01dBrush; CPen Pen, *POldPen;
// выберите перо/кисть:
Pen.CreatePen (PS_INSIDEFRAME, 1, m_Color); POldPen = PDC->SelectObject (SPen); Brush.CreateSolidBrush (m_Color); POldBrush = PDC->SelectObject (SBrush);
// нарисуйте фигуру:
int SizeRound = (m_X2 - m_Xl + m_Y2 - m_Yl) / 6; PDC->RoundRect (m_Xl, m_Yl, m_X2, m_Y2, SizeRound, SizeRound);
// удалите перо/кисть: PDC->SelectObject (POldPen); PDC->SelectObject (POldBrush) ; )
IMPLEMENT_SERIAL (CCircle, CFigure, 2)
CCircle::CCircle (int XI, int Yl, int X2, int Y2, COLORREF Color, int Thickness) {
m_Xl = min (XI, X2); m_Yl = min (Yl, Y2); m_X2 = max (XI, X2); m_Y2 = max (Yl, Y2); m_Color = Color; m_Thickness = Thickness; }
void CCircle::Serialize (CArchiveS ar) {
CFigure::Serialize (ar); if (ar.lsStoring ())
ar « m_Thickness; else
ar » m_Thickness;
}
void CCircle::Draw (CDC *PDC) {
CPen Pen, *POldPen;
// выберите перо/кисть:
Pen.CreatePen (PS_INSIDEFRAME, m_Thickness, m_Color); POldPen = PDC->SelectObject (SPen); PDC->SelectStockObject (NCJLL_BRUSH);
// нарисуйте фигуру:
PDC-> Ellipse (m_Xl, m_Yl, m_X2, m_Y2);
// удалите перо/кисть: PDC->SelectObject (POldPen); )
IMPLEMENT_SERIAL (CCircleFill, CFigure, 2)
CCircleFill::CCircleFill (int XI, int Yl, int X2, int Y2, COLORREF Color) {
m_Xl = min (XI, X2) ; m_Yl = min (Yl, Y2) ; m_X2 = max (XI, X2); m_Y2 = max (Yl, Y2); m_Color = Color; }
Предыдущая << 1 .. 67 68 69 70 71 72 < 73 > 74 75 76 77 78 79 .. 173 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100