Навигация
Главная
Поиск
Форум
FAQ's
Ссылки
Карта сайта
Чат программистов

Статьи
-Delphi
-C/C++
-Turbo Pascal
-Assembler
-Java/JS
-PHP
-Perl
-DHTML
-Prolog
-GPSS
-Сайтостроительство
-CMS: PHP Fusion
-Инвестирование

Файлы
-Для программистов
-Компонеты для Delphi
-Исходники на Delphi
-Исходники на C/C++
-Книги по Delphi
-Книги по С/С++
-Книги по JAVA/JS
-Книги по Basic/VB/.NET
-Книги по PHP/MySQL
-Книги по Assembler
-PHP Fusion MOD'ы
-by Kest
Professional Download System
Реклама
Услуги

Автоматическое добавление статей на сайты на Wordpress, Joomla, DLE
Заказать продвижение сайта
Программа для рисования блок-схем
Инженерный калькулятор онлайн
Таблица сложения онлайн
Популярные статьи
OpenGL и Delphi... 65535
Форум на вашем ... 65535
21 ошибка прогр... 65535
HACK F.A.Q 65535
Бип из системно... 65535
Гостевая книга ... 65535
Invision Power ... 65535
Пример работы с... 65535
Содержание сайт... 65535
ТЕХНОЛОГИИ ДОСТ... 65535
Организация зап... 65535
Вызов хранимых ... 65535
Создание отчето... 65535
Имитационное мо... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Реклама
Сейчас на сайте
Гостей: 9
На сайте нет зарегистрированных пользователей

Пользователей: 13,372
новичок: vausoz
Новости
Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ
Delphi, Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog, 3D MAX, Компас 3D
Заказать программу для Windows Mobile, Symbian

Моделирование автомойки на GPSS + Отчет + Блок схемы
База данных студентов на Delphi (файл записей) + Блок схемы
Моделирование системы управления качеством производственного процесса на...

Построение графических примитивов [Microsoft Visual Studio C++]
3. Запустите среду Microsoft Visual Studio C++ и создайте новый проект на основе шаблона SDI приложения. Для этого выберете пункты меню File-New и в окне конструктора проектов выберете тип проекта MFC AppWizard(exe). В следующем окне выберете тип приложения Single document.
4. Раскройте окно управления проектом (пункты меню View-WorkSpace). Щелкните правой кнопкой мыши по верхней строке дерева классов и выберете пункт меню New Class. В раскрывшемся диалоговом окне определите тип класса как Generic Class (Рисунок 1). В поле Name определите имя вновь создаваемого класса (например CLine) и нажмите ОК. При этом в окне WorkSpace должно отобразится имя нового класса.

Рисунок 1

5. Щелкните правой кнопкой мыши по имени созданного класса и выберете пункт меню Go To Defenition. При этом должно раскрыться окно редактирования с заголовочным файлом класса CLine. Добавьте в объявление класса текст из примера. При этом объявление класса CLine должно будет выглядеть как показано ниже.


class CLine
{
public:
CLine();
virtual ~CLine();

public:
int XFirst, YFirst; //Начальные и конечные
int XLast, YLast; //Координаты отрезка прямой

int LineWidth; //Толщина линии
COLORREF LineColor; //Цвет прямой

//Инкапсуляция функции в класс
DrawLine(CDC *pDC, int X, int Y); // Отрисовка отрезка начиная
// с координат X,Y.
};




6. Раскройте дерево класса CLine в окне WorkSpace. В дереве класса должны отобразиться добавленные Вами новые члены и методы. Посредством двойного щелчка мыши на методе-конструкторе класса CLine() откройте окно редактирования файла определения класса CLine (файл CLine.cpp). Добавьте в текст программы определение метода DrawLine(CDC *pDC, int X, int Y) взятое из примера:
CLine :: DrawLine(CDC *pDC, int X, int Y)
{
CPen Pen(PS_SOLID, LineWidth, LineColor); // Создание пера
CPen *OldPen; // Указатель на предыдущее перо

OldPen=pDC->SelectObject(&Pen); // Выбор пера

pDC->MoveTo(XFirst + X,YFirst + Y); // Перемещение пера
pDC->LineTo(XLast + X,YLast + Y); // Рисование отрезка

pDC->SelectObject(OldPen); // Выбираем предыдущее перо
}




7. Добавьте в программе новый пункт меню (например Отрисовка линии). Создайте функцию-обработчик данного пункта меню в классе окна просмотра. Данный класс наследуется от класса CView и в созданном проекте будет иметь имя C<имя проета>View. Вызовите функцию-обработчик меню на редактирование и добавьте код программы из примера использования объекта класса CLine.
8. Путем двойного щелчка на имени класса C<имя проета>View вызовите на редактирование файл объявления класса и добавьте в разделе PUBLIC строку, объявляющую член класса отрезка прямой ( СLine Line1; ). Для того, чтобы объявление класса CLine стало доступным в классе C<имя проета>View, необходимо в тексте перед объявлением класса C<имя проета>View поместить директиву включения заголовочного файла для класса CLine (#include "Line.h").
9. Запустите программу на выполнение. Если вы все сделали правильно, то при нажатии созданного пункта меню на экране отобразится отрезок прямой красного цвета.
10. В соответствии с заданием создайте класс графического объекта и модифицируйте программу таким образом, чтобы созданный Вами объект класса отобразился на экране.
11. Модифицируйте программу таким образом, чтобы объект перемещался по экрану. Для этого можно использовать следующий фрагмент кода функции обработки пункта меню:

Line1.XFirst=0; //Определяем начальные координаты отрезка
Line1.YFirst=0;
Line1.XLast =100;
Line1.YLast =100;
Line1.LineWidth=5; //Устанавливаем толщину отрезка
Line1.LineColor=RGB(255,0,0); //Красный цвет

CDC *pDC=GetDC(); //Получаем контекст окна

int StartPosX=10;
for (int i=0;i < 100;i++)
{
pDC->FillSolidRect(0,0,2000,2000,RGB(255,255,255)); //Очистка экрана
Line1.DrawLine(pDC,StartPosX,100); //Рисуем отрезок
StartPosX+=5;
Sleep(20); //Пауза 20 мс
}

ReleaseDC(pDC); //Освобождаем контекст окна



12. Добавьте в программу второй объект созданного класса. Модифицируйте программу так, чтобы по экрану перемещались два объекта в разных направлениях и с разной скоростью, разного цвета и размера.
Опубликовал Kest June 01 2009 19:49:56 · 0 Комментариев · 18027 Прочтений · Для печати

• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •


Комментарии
Нет комментариев.
Добавить комментарий
Имя:



smiley smiley smiley smiley smiley smiley smiley smiley smiley
Запретить смайлики в комментариях

Введите проверочный код:* =
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Поделиться ссылкой
Фолловь меня в Твиттере! • Смотрите канал о путешествияхКак приготовить мидии в тайланде?
Загрузки
Новые загрузки
iChat v.7.0 Final...
iComm v.6.1 - выв...
Visual Studio 200...
CodeGear RAD Stud...
Шаблон для новост...

Случайные загрузки
Размещение элемен...
Синтаксический ан...
XPButtons
Turbo Pascal for ...
Dynamic Titles дл...
Pass [Исходник на...
PHP в примерах
WinPopup
С. Г. Горнаков - ...
Allsubmitter 4.7 ...
Графика в проекта...
FileFind
iChat v.7.0 Final...
CoolHints2k v1.03
Drag&Drop
PDA версия сайта
Распознавание иде...
Основы программир...
Панель Календарь
Counter [Исходник...

Топ загрузок
Приложение Клие... 100801
Delphi 7 Enterp... 98068
Converter AMR<-... 20304
GPSS World Stud... 17069
Borland C++Buil... 14262
Borland Delphi ... 10389
Turbo Pascal fo... 7399
Калькулятор [Ис... 6094
Visual Studio 2... 5242
Microsoft SQL S... 3677
Случайные статьи
Блок дАМА
Магнитные выключатели
Реагирование на со...
Казино Parimatch
Вулкан клуб онлайн
Обзор текстовых ба...
конфиденциальных д...
OpenGL. МИНИМАЛЬНА...
8.4. Трассировка ...
Domain Controllers...
Туннельный режим I...
Основные принципы ...
Язык С: время жизни
Видеоприложения со...
Исследование Мира ...
Каковы функции бло...
Панель управления ...
Работа с фильтрами...
Система Mach - фун...
он соответствовал ...
Макросы в языке С
Небольшие версии
Анонимный доступ г...
Внимание к ключево...
Азартный сервис PM...
Статистика



Друзья сайта
Программы, игры


Полезно
В какую объединенную сеть входит классовая сеть? Суммирование маршрутов Занимают ли таблицы память маршрутизатора?