
La función DrawEdge del API no permite dibujar rectángulos, cuadrados, líneas horizontales, verticales y diagonales en tres dimensiones.
Se adjunta un ejemplo en VB 5.0 que sirve para ver el resultado de las diferentes combinaciones de parámetros que se le pueden pasar a la función (incluye la definición de la función y las constantes necesarias para Visual Basic).
La definición de la función es :
La función DrawEdge dibuja uno o más lados de un rectángulo.
BOOL DrawEdge(
HDC hdc, // handle a un device context
LPRECT qrc, // puntero a las coordenadas del rectángulo
UINT edge, // tipo de lado interno y externo a dibujar
UINT grfFlags // tipo de borde
);
Parámetros
hdc
Identifica el device context.
qrc
Puntero a una estructura RECT que contiene las coordenadas lógicas del rectángulo.
edge
Especifica el tipo de borde interior y exterior a dibujar. Este parámetro debe ser una combinación de un borde interno y un borde externo.
Los bordes internos son :
BDR_RAISEDINNER Raised inner edge.
BDR_SUNKENINNER Sunken inner edge.
Los bordes externos son :
BDR_RAISEDOUTER Raised outer edge.
BDR_SUNKENOUTER Sunken outer edge.
Alternativamente, el parámetro edge puede especificar uno de los siguientes flags :
EDGE_BUMP Combinación de BDR_RAISEDOUTER y BDR_SUNKENINNER.
EDGE_ETCHED Combinación de BDR_SUNKENOUTER y BDR_RAISEDINNER.
EDGE_RAISED Combinación de BDR_RAISEDOUTER y BDR_RAISEDINNER.
EDGE_SUNKEN Combinación de BDR_SUNKENOUTER y BDR_SUNKENINNER.
grfFlags
Especifica el tipo de borde. Este parámetro puede ser una combinación de los valores :
BF_ADJUST El rectangulo se ajusta para dejar espacio al área cliente.
BF_BOTTOM Borde inferior del rectángulo.
BF_BOTTOMLEFT Lados izquierdo e inferior del rectángulo.
BF_BOTTOMRIGHT Lados inferior y derecho del rectángulo.
BF_DIAGONAL Diagonal.
BF_DIAGONAL_ENDBOTTOMLEFT Diagonal. El punto final es la esquina inferior izquierda del rectángulo; el origen es la esquina superior derecha.
BF_DIAGONAL_ENDBOTTOMRIGHT Diagonal. El final es la esquina inferior derecha del rectángulo; el origen es la esquina superior izquierda.
BF_DIAGONAL_ENDTOPLEFT Diagonal. El final es la esquina superior izquierda del rectángulo; el origen es la esquina inferior derecha.
BF_DIAGONAL_ENDTOPRIGHT Diagonal. El punto final es la esquina superior derecha del rectángulo; el origen es la esquina inferior izquierda.
BF_FLAT Borde plano.
BF_LEFT Lado izquierdo del rectángulo.
BF_MIDDLE El interior del rectángulo se rellenará con el color de los botones.
BF_MONO Borde de una dimensión.
BF_RECT Rectángulo completo
BF_RIGHT Lado derecho del rectángulo.
BF_SOFT Soft buttons en vez de tiles. (?)
BF_TOP Borde superior del rectángulo.
BF_TOPLEFT Lados superior e izquierdo del rectángulo.
BF_TOPRIGHT Lados superior y derecho del rectángulo.
Valores de retorno
Si la función falla devuelve FALSE, en caso contrario devuelve TRUE. Para obtener más información sobre el error podremos emplear la función GetLastError.
Y como la traducción de esto es penosa y no se entiende nada (prometo que tampoco se entendía mucho en inglés) lo mejor es que probeis con el ejemplo que acompaño.

