Навигация
Главная
Поиск
Форум
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
Реклама
Сейчас на сайте
Гостей: 26
На сайте нет зарегистрированных пользователей

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

Моделирование интернет магазина (Apache, Php, Html) на GPSS + Блок схема
Моделирование вычислительного центра на GPSS + Отчет + Блок схема
Моделирование работы участка термической обработки шестерен на GPSS + По...

Построение графических примитивов [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 Комментариев · 17279 Прочтений · Для печати

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


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



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

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

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

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

Пароль



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

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

Случайные загрузки
Как программирова...
Strawberry Prolog...
Создание Web-сайт...
Андрей Боровский....
Zoom [Исходник на...
Pass [Исходник на...
Х. М. Дейтел, П. ...
База англоязычных...
Последние загруж...
PHP глазами хакера
Панель статистики...
Delphi и технолог...
Язык программиров...
Генетический алго...
Самоучитель Прогр...
Разработка Web-пр...
Пример OpenGL гра...
Drag&Drop
JanButtonsV
Игра в крестики н...

Топ загрузок
Приложение Клие... 100772
Delphi 7 Enterp... 97809
Converter AMR<-... 20260
GPSS World Stud... 17014
Borland C++Buil... 14189
Borland Delphi ... 10267
Turbo Pascal fo... 7372
Калькулятор [Ис... 5972
Visual Studio 2... 5206
Microsoft SQL S... 3661
Случайные статьи
Доступ к аргумента...
Передача символьно...
Абстрактные типы д...
Принцип суперпозиции
Базис I, K, S
Малая вирусная энц...
ОСНОВНЫЕ РАЗЛИЧИЯ ...
Адресное пространство
Запрограммировать ...
Это разрешение буд...
Интернет-ресурсы и...
Чтобы сократить не...
Increase Quotas (У...
Рекомендации по ра...
Игры. Лучшие онлай...
будут обращаться к...
Более подробное об...
Прозрачность окна
Представление хэш-...
Средства системы O...
Последниедва запре...
Официальный сайт В...
Игра ОлдБК Mmorpg.
Ставки на киберспо...
Раскрутка - Seo се...
Статистика



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


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