CDC::RoundRect
Desenhar um retângulo com cantos arredondados usando a caneta atual.
BOOL RoundRect(
int x1,
int y1,
int x2,
int y2,
int x3,
int y3
);
BOOL RoundRect(
LPCRECT lpRect,
POINT point
);
Parâmetros
x1
Especifica a coordenada x do canto superior esquerdo do retângulo (em unidades lógicas).y1
Especifica a coordenada y do canto superior esquerdo do retângulo (em unidades lógicas).x2
Especifica a coordenada x do canto inferior direito do retângulo (em unidades lógicas).y2
Especifica a coordenada y do canto inferior direito do retângulo (em unidades lógicas).x3
Especifica a largura da elipse usada para desenhar os cantos arredondados (em unidades lógicas).y3
Especifica a altura da elipse usada para desenhar os cantos arredondados (em unidades lógicas).lpRect
Especifica o retângulo delimitador em unidades lógicas.Você pode passar um objeto de CRect ou um ponteiro a estrutura de RECT para esse parâmetro.point
A coordenada x de point especifica a largura da elipse para desenhar os cantos arredondados (em unidades lógicas).A coordenada y de point especifica a altura da elipse para desenhar os cantos arredondados (em unidades lógicas).Você pode passar uma estrutura de POINT ou um objeto de CPoint para esse parâmetro.
Valor de retorno
Diferente de zero se a função é com êxito; se não 0.
Comentários
Dentro do retângulo é preenchida usando o pincel atual.
A figura que essa função desenha estende até mas não inclui as coordenadas da direita e inferior.Isso significa que a altura da figura a y2 – y1 e a largura da figura são x2 – x1.A altura e largura do retângulo delimitador devem ser maiores que 2 unidades e menor que 32.767 unidades.
Exemplo
void CDCView::DrawRoundRect(CDC* pDC)
{
// create and select a solid blue brush
CBrush brushBlue(RGB(0, 0, 255));
CBrush* pOldBrush = pDC->SelectObject(&brushBlue);
// create and select a thick, black pen
CPen penBlack;
penBlack.CreatePen(PS_SOLID, 3, RGB(0, 0, 0));
CPen* pOldPen = pDC->SelectObject(&penBlack);
// get our client rectangle
CRect rect;
GetClientRect(rect);
// shrink our rect 20 pixels in each direction
rect.DeflateRect(20, 20);
// Draw a thick black rectangle filled with blue
// corners rounded at a 17-unit radius. Note that
// a radius of three or less is not noticable because
// the pen is three units wide.
pDC->RoundRect(rect, CPoint(17, 17));
// put back the old objects
pDC->SelectObject(pOldBrush);
pDC->SelectObject(pOldPen);
}
Requisitos
Cabeçalho: afxwin.h