Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС
выпущен 4 ноября!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

ПРОГРАММИРОВАНИЕ НА C и С++



Давно заметил, что всё-таки языки С/C++ это не самый лучший вариант программирования под Windows. Сейчас появилась масса более современных и удобных языков, например тот же Python - кроссплатформенный язык, очень легок в изучение. Я его изучил буквально за несколько дней по этому курсу - ссылка. Автор постарался, там видеоуроки на удивление легкие и понятные.

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).
 
     ...


<< ВЕРНУТЬСЯ В ПОДРАЗДЕЛ

<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ




Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS