Навигация
Главная
Поиск
Форум
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
HACK F.A.Q 65535
Бип из системно... 65535
Гостевая книга ... 65535
Invision Power ... 65535
Пример работы с... 65535
Содержание сайт... 65535
Организация зап... 65535
Вызов хранимых ... 65535
Создание отчето... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Модуль Forms 65535
ТЕХНОЛОГИИ ДОСТ... 64715
Имитационное мо... 58935
Реклама
Сейчас на сайте
Гостей: 6
На сайте нет зарегистрированных пользователей

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

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

Реклама



Подписывайся на YouTube канал о программировании, что бы не пропустить новые видео!

ПОДПИСЫВАЙСЯ на канал о программировании
Построение графических примитивов [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 23:49:56 · 0 Комментариев · 14545 Прочтений · Для печати

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


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



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

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

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

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

Пароль



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

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

Случайные загрузки
Geo-Whois
В.Понамарев - COM...
Экранная лупа
netBIOS
Dealer
AJAX и PHP. разра...
Задача о 8ми ладьях
Программа предназ...
Pass [Исходник на...
DeleteEdit
Сложный калькулятор
VksButton
Binary2XMLDemo (Р...
Delphi 7: Для про...
Info
Керниган Б.В., Ри...
DirHTMLReportBuil...
Atb
Borland C++Builde...
Berg

Топ загрузок
Приложение Клие... 100501
Delphi 7 Enterp... 89091
Converter AMR<-... 20087
GPSS World Stud... 14205
Borland C++Buil... 12394
Borland Delphi ... 8807
Turbo Pascal fo... 7068
Калькулятор [Ис... 5025
Visual Studio 2... 5011
FreeSMS v1.3.1 3550
Случайные статьи
Управление идентиф...
Кандидатуры для де...
Табл. 5-3.
Настройка визуальн...
VIRTUAL expected
Премия за завершение
Предварительный пр...
Слот машины онлайн...
3.3. Принадлежнос...
Основы OLE. Термин...
Обобщенное програм...
Конструктор копиро...
Особенности функци...
Переменные в FORMS
Самообучение маршр...
Где купить кухню в...
functor(T,F,N)
Запрограммировать ...
Включение датчика NFC
Тестирование, поис...
Операции записи да...
Счетчик ссылок vnode
Параметры, диагнос...
Адресное пространство
Квартиры на сутки ...
Статистика



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


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