Навигация
Главная
Поиск
Форум
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
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Модуль Forms 65535
Имитационное мо... 61570
Реклама
Сейчас на сайте
Гостей: 9
На сайте нет зарегистрированных пользователей

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

Моделирование работы участка термической обработки шестерен на GPSS + По...
Моделирование информационно-поисковой библиографической системы на gpss ...
Принадлежит ли точка пересечению двух окружностей на Turbo Pascal + Отче...

Реклама



Подписывайся на 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 Июнь 01 2009 23:49:56 · 0 Комментариев · 15413 Прочтений · Для печати

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


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



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

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

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

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

Пароль



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

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

Случайные загрузки
Меню проводника в...
С. Г. Горнаков - ...
C# 2005 и платфор...
Шифрование по алг...
Форма в форме
Рисование PopupMenu
База каталогов ( ...
PDA версия сайта
LaserTank [Исходн...
PDJPack
DateEdit
БД сеть компьютер...
CarGame [Исходник...
Xrumer 4 Platinum...
База данных: Книж...
Фундаментальные а...
Язык программиров...
MicroGPSS Studen ...
SODA [Исходник на...
AlignEdit

Топ загрузок
Приложение Клие... 100552
Delphi 7 Enterp... 93023
Converter AMR<-... 20116
GPSS World Stud... 15855
Borland C++Buil... 13350
Borland Delphi ... 9346
Turbo Pascal fo... 7133
Калькулятор [Ис... 5300
Visual Studio 2... 5047
FreeSMS v1.3.1 3570
Случайные статьи
Если вы не работае...
13.3. Двоичное дер...
PM Casino онлайн
Управления ipl
Используя функции ...
Вычисление значени...
Настройки с заголо...
Мечты сбываются в ...
Эффективность прям...
Краткие выводы по ...
Варианты
Этап формализации
File not open
Окна программы Pro...
Меню
Связь между клиент...
Клуб Вулкан снова ...
Отличные наушники
Вулкан игровые авт...
Сопутствующая инфо...
Методы форматирования
Форма Flat - работ...
Использование экра...
Обновленные источн...
Сохранение документа
Статистика



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


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