CRect::SubtractRect
Faz as dimensões de CRect igual a subtração de lpRectSrc2 de lpRectSrc1.
BOOL SubtractRect(
LPCRECT lpRectSrc1,
LPCRECT lpRectSrc2
) throw( );
Parâmetros
lpRectSrc1
Os pontos a RECT estrutura ou ao objeto de CRect de um retângulo que deve ser subtraída.lpRectSrc2
Os pontos a RECT estrutura ou ao objeto de CRect que devem ser subtraída do retângulo apontada pelo parâmetro de lpRectSrc1 .
Valor de retorno
Diferente de zero se a função é com êxito; se não 0.
Comentários
A subtração o retângulo é o menor que contém todos os pontos em lpRectScr1 que não estão na interseção de lpRectScr1 e de lpRectScr2.
O retângulo especificado por lpRectSrc1 será inalterado se o retângulo especificado por lpRectSrc2 sobrepostos não completamente o retângulo especificado por lpRectSrc1 pelo menos uma de x ou y instruções.
Por exemplo, se lpRectSrc1 foi (10,10, 100.100) e lpRectSrc2 foi (50,50, 150.150), o retângulo apontado por lpRectSrc1 seria inalterado quando a função retornada.Se lpRectSrc1 foi (10,10, 100.100) e lpRectSrc2 foi (50,10, 150.150), no entanto, o retângulo apontado por lpRectSrc1 contém as coordenadas (10,10, 50.100) quando a função retornada.
SubtractRect não é o mesmo que operador - ou operador - =.Nenhum de esses operadores nunca chama SubtractRect.
Observação |
---|
Ambos os retângulos devem ser normalizados ou essa função pode falhar.Você pode chamar NormalizeRect para normalizar retângulos antes de chamar a função. |
Exemplo
RECT rectOne;
RECT rectTwo;
rectOne.left = 10;
rectOne.top = 10;
rectOne.bottom = 100;
rectOne.right = 100;
rectTwo.left = 50;
rectTwo.top = 10;
rectTwo.bottom = 150;
rectTwo.right = 150;
CRect rectDiff;
rectDiff.SubtractRect(&rectOne, &rectTwo);
CRect rectResult(10, 10, 50, 100);
ASSERT(rectDiff == rectResult);
// works for CRect, too, since there is
// implicit CRect -> LPCRECT conversion
CRect rect1(10, 10, 100, 100);
CRect rect2(50, 10, 150, 150);
CRect rectOut;
rectOut.SubtractRect(rect1, rect2);
ASSERT(rectResult == rectOut);
Requisitos
Cabeçalho: atltypes.h