Функция DrawEdge

Declare Function DrawEdge Lib "user32" (ByVal hdc As Long, _
    qrc As RECT, _
    ByVal edge As Long, _
    ByVal grfFlags As Long) As Boolean

DrawEdge рисует контур прямоугольника с выбранным стилем, позволяя добиться некоторых 3D-эффектов. Использование данной функции предпочтительнее, чем применение различных рельефных рамок, панелей и других элементов управления, так как функция более эффективна и использует меньше ресурсов компьютера.

hdc
Описатель контекста устройства
qrc
Структура RECT - контур прямоугольника
edge
Флаги, определяющие вид контура: края контура могут быть утопленными или приподнятыми. Данный параметр должен быть комбинацией двух флагов: утопленного и приподнятого типов
Флаги для утопленного типа
BDR_RAISEDINNER = &H4Внутренний контур приподнят
BDR_SUNKENINNER = &H8Внутренний контур утоплен
Флаги для приподнятого типа
BDR_RAISEDOUTER = &H1Внешний контур приподнят
BDR_SUNKENOUTER = &H2Внешний контур утоплен
Также допустимо использование следующих флагов
EDGE_BUMPКомбинация BDR_RAISEDOUTER и BDR_SUNKENINNER
EDGE_ETCHEDКомбинация BDR_SUNKENOUTER и BDR_RAISEDINNER
EDGE_EDGE_RAISEDКомбинация BDR_RAISEDOUTER и BDR_RAISEDINNER
EDGE_SUNKENКомбинация BDR_SUNKENOUTER и BDR_SUNKENINNER
grfFlags
Тип границы контура. Может быть комбинацией следующих констант
BF_ADJUST = &H2000If this flag is passed, shrink the rectangle pointed to by the qrc parameter to exclude the edges that were drawn. If this flag is not passed, then do not change the rectangle pointed to by the qrc parameter
BF_BOTTOM = &H8Выводится нижняя часть границы
BF_BOTTOMLEFT = (BF_BOTTOM Or BF_LEFT)Выводится нижняя и левая часть границы
BF_BOTTOMRIGHT = (BF_BOTTOM Or BF_RIGHT)Выводится нижняя и правая часть границы
BF_DIAGONAL = &H10Выводится диагональ
BF_DIAGONAL_ENDBOTTOMLEFT = (BF_DIAGONAL Or BF_BOTTOM Or BF_LEFT)Диагональ из нижнего левого угла в верхний правый угол
BF_DIAGONAL_ENDBOTTOMRIGHT = (BF_DIAGONAL Or BF_BOTTOM Or BF_RIGHT) Диагональ из нижнего правого угла в верхний левый угол
BF_DIAGONAL_ENDTOPLEFT = (BF_DIAGONAL Or BF_TOP Or BF_LEFT)Diagonal border. The end point is the top-left corner of the rectangle; the origin is bottom-right corner
BF_DIAGONAL_ENDTOPRIGHT = (BF_DIAGONAL Or BF_TOP Or BF_RIGHT)Diagonal border. The end point is the top-right corner of the rectangle; the origin is bottom-left corner
BF_FLAT = &H4000Flat border
BF_LEFT = &H1Левая часть границы
BF_MIDDLE = &H800Interior of rectangle to be filled
BF_MONO = &H8000One-dimensional border
BF_RECT = (BF_LEFT Or BF_TOP Or BF_RIGHT Or BF_BOTTOM)Выводятся все части границы
BF_RIGHT = &H4Правая часть границы
BF_SOFT = &H1000Soft buttons instead of tiles
BF_TOP = &H2Верх границы
BF_TOPLEFT = (BF_TOP Or BF_LEFT)Верхняя и левая часть границы
BF_TOPRIGHT = (BF_TOP Or BF_RIGHT)Верхняя и правая часть границы

Пример

' Выводим левую и нижнюю часть рамки
Dim r As RECT

With r
 .Left = 10
 .Top = 10
 .Right = 70
 .Bottom = 70
End With

' Рисуем рамку
DrawEdge hdc, r, EDGE_ETCHED, BF_BOTTOMLEFT

Категория

Графика