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

 

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

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

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

CSize ScrollSize = GetTotalSize (); pDC->MoveTo (ScrollSize.cx, 0) ; pDC->LineTo (ScrollSize.cx, ScrollSize.cy); pDC->LineTo (0, ScrollSize.cy);
CRect ClipRect; CRect DirnRect; CRect IntRect;
CFigure *PFigure; // изменено с 'CLine *PLine'
pDC->GetClipBox (SClipRect);
int NumFigs — pDoc-X3etNumFigs () ; for (int Index = 0; Index < NumFigs; ++Index) {
PFigure = pDoc->GetFigure (Index); DirnRect = PFigure-MSetDimRect ();
if (IntRect.IntersectRect (DirnRect, ClipRect)) PFigure->Draw (pDC);
}
}
Измененный код использует новый класс Cf igure вместо CLine. Он рисует фигуры в том порядке, в котором они добавлялись (предыдущий вариант рисовал их в обратном порядке), так что все фигуры переопределяются в том порядке, в котором они были нарисованы.
Теперь программу MiniDraw можно построить и выполнить.
Текст программы MiniDraw
В листингах (19.9 — 19.16) приведен текст программы MiniDraw, созданной в этой главе. Исходные файлы программы находятся в каталоге \MiniDrw6 прилагаемого компакт-диска.
ЛИСТИНГ 19.9
// MiniDraw.h : главный файл заголовков приложения MINIDRAW //
#if !defined(
AFX_MINIDRAW_H_11E83924_999A_11D1_80FC_00C0F6A83B7F_INCLUDEDJ
#define AFX_MINIDRAW_H_11E83924_999A_11D1_80FC_00C0F6A83B7F_INCLUDED_
#if _MSC_VER > 1000 #pragma once
lendif // _MSC__VER > 1000
fifndef _AFXWIN_H_
terror include 'stdafx.h' before including this file for PCH fendif
#include "resource.h" // основные символические константы
/////////////////////////////////////////////////////////////////////// // CMiniDrawApp:
// Смотрите реализацию этого класса в файле MiniDraw.срр
//
class CMiniDrawApp : public CWinApp {
public:
COLORREF m_CurrentColor; int m_CurrentThickness; UINT m_CurrentTool; UINT m_IdxColorCmd;
public:
CMiniDrawApp();
II Переопределения
// Переопределения виртуальных функций, сгенерированные
// мастером ClassWizard
//{{AFX_VIRTUAL(CMiniDrawApp)
public:
virtual BOOL Initlnstance(); //}}AFX_VIRTUAL
// Реализация
//{{AFX_MSG(CMiniDrawApp)
afx_msg void OnAppAbout() ; afx_msg void OnLineDouble();
afx_msg void OnUpdateLineDouble(CCmdUI* pCrrtdUI) ; afx_msg void OnLineSingle ();
afx_msg void OnUpdateLineSingle(CCmdUI* pCmdUI); afx_msg void OnLineTriple ();
afx_msg void OnUpdateLineTriple(CCmdUI* pCmdUI); afx_msg void OnToolsCircle();
afx_msg void OnUpdateToolsCircle(CCmdUI* pCmdUI); afx_msg void OnToolsCirclefill ();
afx_msg void OnUpdateToolsCirclefill(CCmdUI* pCmdUI); afx_msg void OnToolsLine();
afx_msg void OnUpdateToolsLine(CCmdUI* pCmdUI); afx_msg void OnToolsRectangle();
afx_msg void OnUpdateToolsRectangle(CCmdUI* pCmdUI); afx_msg void OnToolsRectfill();
afx_msg void OnUpdateToolsRectfill(CCmdUI* pCmdUI); afx_msg void OnToolsRectround();
afx_msg void OnUpdateToolsRectround(CCmdUI* pCmdUI); afx_msg void OnToolsRectroundfill() ;
afx_msg void OnUpdateToolsRectroundfill(CCmdUI* pCmdUI); afx_msg void OnColorBlack{);
afx_msg void OnUpdateColorBlack(CCmdUI* pCmdUI); afx_msg void OnColorBlue();
afx_msg void OnUpdateColorBlue(CCmdUI* pCmdUI); afx_msg void OnColorCustom();
afx_msg void OnUpdateColorCustom(CCmdUl* pCmdUI); afx_msg void OnColorCyan();
afx_msg void OnUpdateColorCyan(CCmdUI* pCmdUI); afx_msg void OnColorGreen();
afx_msg void OnUpdateColorGreen(CCmdUI* pCmdUI); afx_insg void OnColorMagenta () ;
afx msg void OnUpdateColorMagenta(CCmdUI* pCmdUI); afx_msg void OnColorRed() ;
afx_msg void OnUpdateColorRed(CCmdUI* pCmdUI); afx_msg void OnColorWhite();
afx_msg void OnUpdateColorWhite(CCmdUI* pCmdUI); afx_msg void OnColorYellow();
afx__msg void OnUpdateColorYellow(CCmdUI" pCmdUI); //}}AFX_MSG DECLARE_MESSAGE_MAP()
);
//////////////////////////////////////////////////////////////////////
//{(AFX_INSERT_LOCATION}}
// Visual Cf+ вставит дополнительные объявления // сразу перед предыдущей строкой.
#endif
// !defined(
// AFX MINIDRAW H 11E83924 999A 11D1 80FC 00C0F6A83B7F INCLUDED )
Листинг 19.10
// MiniDraw.cpp : Определяет работу класса приложения //
#include "stdafx.h" iinclude "MiniDraw.h"
iinclude "MainFrm.h" #include "MiniDrawDoc.h" iinclude "MiniDrawView.h"
#ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE
static char THIS_FILE[] = _FILE_;
#endif
////////////////////////////////////////////////////////////////////// // Класс CMiniDrawApp
BEGIN_MESSAGE_MAP(CMiniDrawApp, CWinApp) //{{AFX_MSG_MAP(CMiniDrawApp) ON_COMMAND(ID_APP_ABOUT, OnAppAbout) ON COMMAND(ID_LINE_DOUBLE, OnLineDouble)
ON JJPDATE_COMMAND_UI(ID_ LINE_DOUBLE, OnUpdateLineDouble) ON_COMMAND(ID_LINE_SINGLE, OnLineSingle)
ON_UPDATE_COMMAND_UI(ID_LINE_SINGLE, OnUpdateLineSingle) ON_COMMAND(ID_LINE_TRIPLE, OnLineTriple)
ON_UPDATE_COMMAND_UI(ID_LINE_TRIPLE, OnUpdateLineTriple) ON_COMMAND(ID_TOOLS_CIRCLE, OnToolsCircle)
ON_UPDATE_COMMAND_UI(ID_TOOLS_CIRCLE, OnUpdateToolsCircle) ON__COMMAN D(ID_TOOLS_CIRCLEFILL, OnToolsCirclefill)
ON_UPDATE_COMMAND__UI(ID_TOOLS_CIRCLEFILL, OnUpdateToolsCirclefill) ON_COMMAND(ID_TOOLS_LINE, OnToolsLine)
ON_UPDATE_COMMAND_UI(ID_TOOLS_LINE, OnUpdateToolsLine} ON COMMAND(ID_TOOLS_RECTANGLE, OnToolsRectangle)
Предыдущая << 1 .. 70 71 72 73 74 75 < 76 > 77 78 79 80 81 82 .. 173 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100