Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Уроки по Visual C++ (MFC, платформа .NET)


Информационный Канал Subscribe.Ru


Visual C++.NET. MFC. Уроки с сайта http://progs.biz

Рассылка № 61

Visual C++.NET. MFC. Урок 14. Класс CRect для прямоугольников подробнее.

Полные версии уроков (с картинками) можно найти по адресам:
Урок 14. Класс CRect для прямоугольников подробнее.

Г. Шилдт. Самоучитель C++.
Г. Шилдт. Самоучитель C++
Заказать на Озоне

Подробнее

Рассылки сайта progs.biz через subscribe.ru
Уроки по SQL Server
Уроки для начинающих по SQL Server. Создание баз данных, администрирование, программирование, использование языка T-SQL, написание клиентских приложений.

Visual C++.NET. Урок 14. Класс CRect для прямоугольников подробнее

Класс CRect представляет из себя класс для работы с прямоугольником.

Задать прямоугольник можно, например, следующим конструктором:

CRect r(10, 20, 40, 40);

Параметры тут - это координаты левого верхнего и правого нижнего углов прямоугольника. Это же самое можно сделать путем вызова метода SetRect:

r.SetRect(40, 40, 10, 20);

Если вы не уверены, что первый параметр меньше третьего, а второй - четвертого, то прямоугольник можно привести к нормальному виду путем вызова метода NormalizeRect():

r.NormalizeRect();

После этого все встанет на свои места - левая сторона будет левее правой, в верхняя - выше нижней.

Определить ширину и высоту прямоугольника можно через вызов методов Width и Height. Разумеется, перед этим прямоугольник надо нормализовать (т. е. вызвать метод NormalizeRect).

Прямоугольник можно перемещать методами MoveToXY, MoveToX и MoveToY:

r.MoveToXY(100, 50);
r.MoveToX(80);

При вызове методов MoveTo... размеры прямоугольника не изменяются. Этого эффекта (сдвига) можно добиться вызовом метода OffsetRect. Параметры у него такие же, как и у MoveToXY.

Узнать, принадлежит ли некоторая точка прямоугольнику, можно через метод PtInRect типа BOOL:

CPoint pt(30, 30);
if(r.PtInRect(pt)){
    ...

Естественно, что метод PtInRect возвращает TRUE, если передаваемая в качестве параметра точка принадлежит прямоугольнику и FALSE в противоположном случае.

Определить, не является ли прямоугольник вырожденным (т. е. не равна ли одна из его сторон нулю) можно методом IsRectEmpty:

r.IsRectEmpty();

Для находжения пересечения 2 прямоугольников служит меттод IntersectRect. Он принимает в качестве параметров 2 прямоугольника и возвращает опять прямоугольник, который и является пересечением первых двух. Вот пример:

    ...
    CRect r1, r2, r;
    r1.SetRect(10, 10, 40, 40);
    r2.SetRect(20, 0, 50, 20);
    r.IntersectRect(r1, r2);
    pDC->Rectangle(r); //Выведется прямоугольник (20, 10), (40, 20).
    ...
Наверх

PARKING.RU. Качественный ВИРТУАЛЬНЫЙ ХОСТИНГ на платформе Windows(r): поддержка .NET, многофункциональная панель управления, аренда бизнес-приложений, сертифицированные специалисты. Управляемый ВЫДЕЛЕННЫЙ ХОСТИНГ на платформе Windows(r): производительные серверы, профессиональная поддержка, аренда ПО Microsoft(r), безопасность, гарантии. http://www.parking.ru
Copyright Алексеев Игорь, 2002-2004
Copyright сайт progs.biz, 2002-2004
Распространение материалов без разрешения владельцев авторских прав запрещено.


BannerDrive.ru

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное