часы
O
S D
чаться в рисовании на канве, т.е. в задании спе-
цифического региона обновления окна.
Помимо таких вот относительно невинных воз-
можностей, технология регионов позволяет так-
же глумиться над благородными очертаниями
любого потомка TWinControl.
Иными словами, любым контролом, имеющим
Handle, например, та же форма. Особенно широ-
ко регионы используются в формах, при их отри-
совке и обновлении. Вот тут мы и подошли к ра-
боте с регионами.
Итак, для начала, давайте разберемся, что та-
кое этот самый регион. Регион позволяет задать
на канве область любой формы, что в принципе
нам и нужно. Обратимся к MSDN. Регион созда-
ется одной из API функций:
function CreateRectRgn(p1, р2, рЗ, р4: Integer): HRGN;
function CreateRectRgnIndirect(const p1 : TRect): HRGN;
Функция
C r e a t e R e c t R g n ( )
создает регион прямо-
угольной
формы
(параметры
задают X
и Y для
верхнего левого и нижнего правого угла прямо-
угольника,
задающего
регион.
Функция
C r e a t e -
R e c t R g n l n d i r e c t ( )
аналогична
функции
C r e a t e R e c t -
Rgn(), разница лишь в том, что вместо четырех ко-
ординат функция получает структуру типа
T R e c t .
function CreateRoundRectRgn(p1, р2, рЗ, р4, р5, рб: Integer): HRGN;
Продолжая наш цикл по практ ике программиро-
вания,
сегодня м ы научимся работать с регио-
нами и создадим простейшие ча-
сы, сообщающие нам время ж е н -
ским и м уж ским голосом.
..
Г
оворящие часы - это программа,
сообщающая время от времени
время :). Имеет интуитивно понятный
интерфейс с управлением, скажем, через трей. Мож-
но будет задавать: сообщать время при запуске, каж-
дый час или с интервалом, заданным пользователем.
Также было бы неплохо иметь выбор типа, разме-
ра и цвета шрифта, что будет отображать время. Что
имеется ввиду? Это видно сразу на картинке (см. вы-
ше), просто текст с прозрачным фоном, что можно
будет перемещать в любое место рабочего стола.
К р а т к и й э к с к у р с ♦♦♦
К
ак реализовать прозрачный фон текста?
\ЛЛпАР1 предоставляет набор функций, позво-
ляющих описать произвольную геометрическую
фигуру, которая потом может использоваться при
работе с окнами. Использование может заклю-
Функция
C r e a t e R o u n d R e c t R g n ( )
аналогична
функции CreateRectRgn(), но создаваемая прямо-
угольная область имеет скругленные углы. р1, р2 -
координаты верхнего ле-
вого угла, рЗ, р4 - коорди-
наты нижнего правого, р5,
рб - высота и ширина эл-
липса, применяемого для
округления углов.
function CreatePolygonRgn(const Points; Count, RIIMode: Integer): HRGN;
Функция
C r e a t e P o l y g o n R g n ( )
создает регион, огра-
ниченный многоугольником, вершины которого
заданы в массиве
P o i n t s ( х , у ) .
Параметр
C o u n t
ука-
зывает количество точек в массиве, a
R I I M o d e
оп-
ределяет, какие точки будут принадлежать регио-
ну (возможно два режима - ALTERNATE и WINDING).
function CreatePolyPolygonRgn(const pPtStructs; const plntArray; p3,
p4: Integer): HRGN;
Функция
C r e a t e P o l y P o l y g o n R g n ( )
создает
регион,
состоящий
из
нескольких
регионов.
Параметр
p P t S t r u c t
является массивом массивов точек (что-то
типа двумерного массива),
p l n t A r r a y
является мас-
сивом,
содержащим
количество
точек
(вершин)
для каждого из регионов, рЗ - количество регио-
предыдущая страница 43 Компьютер 2010 09 читать онлайн следующая страница 45 Компьютер 2010 09 читать онлайн Домой Выключить/включить текст