Classe CSize

Semelhante à estrutura SIZE do Windows, que implementa uma coordenada ou posição relativa.

Sintaxe

class CSize : public tagSIZE

Membros

Construtores públicos

Nome Descrição
CSize::CSize Constrói um objeto CSize.

Operadores públicos

Nome Descrição
CSize::operator - Subtrai dois tamanhos.
CSize::operator != Verifica a desigualdade entre CSize e um tamanho.
CSize::operator + Adiciona dois tamanhos.
CSize::operator += Adiciona um tamanho a CSize.
CSize::operator -= Subtrai um tamanho de CSize.
CSize::operator == Verifica a igualdade entre CSize e um tamanho.

Comentários

Essa classe é derivada da estrutura SIZE. Isso significa que você pode passar um CSize em um parâmetro que exige um SIZE e que os membros de dados da estrutura SIZE são membros de dados acessíveis de CSize.

Os membros cx e cy de SIZE (e CSize) são públicos. Além disso, CSize implementa funções de membro para manipular a estrutura SIZE.

Observação

Para mais informações sobre classes de utilitário compartilhado (como CSize), confira Classes compartilhadas.

Hierarquia de herança

tagSIZE

CSize

Requisitos

Cabeçalho: atltypes.h

CSize::CSize

Constrói um objeto CSize.

CSize() throw();
CSize( int initCX, int initCY) throw();
CSize( SIZE initSize) throw();
CSize( POINT initPt) throw();
CSize( DWORD dwSize) throw();

Parâmetros

initCX
Define o membro cx de CSize.

initCY
Define o membro cy de CSize.

initSize
Estrutura SIZE ou objeto CSize usado para inicializar CSize.

initPt
Estrutura POINT ou objeto CPoint usado para inicializar CSize.

dwSize
DWORD usado para inicializar CSize. A palavra de nível inferior é o membro cx e a de nível superior é o membro cy.

Comentários

Se nenhum argumento for fornecido, cx e cy serão inicializados como zero.

Exemplo

CSize szEmpty;
CSize szPointA(10, 25);

SIZE sz;
sz.cx = 10;
sz.cy = 25;
CSize szPointB(sz);

POINT pt;
pt.x = 10;
pt.y = 25;
CSize szPointC(pt);

CPoint ptObject(10, 25);
CSize szPointD(ptObject);   

DWORD dw = MAKELONG(10, 25);
CSize szPointE(dw);

ASSERT(szPointA == szPointB);
ASSERT(szPointB == szPointC);
ASSERT(szPointC == szPointD);
ASSERT(szPointD == szPointE);   

CSize::operator ==

Verifica se há igualdade entre dois tamanhos.

BOOL operator==(SIZE size) const throw();

Comentários

Se os tamanhos são iguais, retorna diferente de zero; se não são, retorna 0.

Exemplo

CSize sz1(135, 135);
CSize sz2(135, 135);

ASSERT(sz1 == sz2);

CSize::operator !=

Verifica a desigualdade entre dois tamanhos.

BOOL operator!=(SIZE size) const throw();

Comentários

Se os tamanhos não são iguais, retorna diferente de zero; se são, retorna 0.

Exemplo

CSize sz1(222, 222);
CSize sz2(111, 111);

ASSERT(sz1 != sz2);   

CSize::operator +=

Adiciona um tamanho a CSize.

void operator+=(SIZE size) throw();

Exemplo

CSize sz1(100, 100);
CSize sz2(50,  25);

sz1 += sz2;

CSize szResult(150, 125);
ASSERT(sz1 == szResult);

// works with SIZE, too

sz1 = CSize(100, 100);
SIZE sz3;
sz3.cx = 50;
sz3.cy = 25;

sz1 += sz3;
ASSERT(sz1 == szResult);   

CSize::operator -=

Subtrai um tamanho de CSize.

void operator-=(SIZE size) throw();

Exemplo

CSize sz1(100, 100);
CSize sz2(50,  25);

sz1 -= sz2;

CSize szResult(50, 75);
ASSERT(sz1 == szResult);

// works with SIZE, too

sz1 = CSize(100, 100);
SIZE sz3;
sz3.cx = 50;
sz3.cy = 25;

sz1 -= sz3;
ASSERT(sz1 == szResult);   

CSize::operator +

Esses operadores adicionam o valor CSize ao valor do parâmetro.

CSize operator+(SIZE size) const throw();
CPoint operator+(POINT point) const throw();
CRect operator+(const RECT* lpRect) const throw();

Comentários

Confira as seguintes descrições dos operadores individuais:

  • operador +( tamanho )

    Essa operação adiciona dois valores CSize.

  • operador +( ponto )

    Essa operação desloca (move) um valor POINT (ou CPoint) por esse valor CSize. Os membros cx e cy desse valor CSize são adicionados aos membros de dados x e y do valor POINT. É semelhante à versão de CPoint::operator +, que usa um parâmetro SIZE.

  • operador +( lpRect )

    Essa operação desloca (move) um valor RECT (ou CRect) por esse valor CSize. Os membros cx e cy desse valor CSize são adicionados aos membros de dados left, top, right e bottom do valor RECT. É semelhante à versão de CRect::operator +, que usa um parâmetro SIZE.

Exemplo

CSize sz1(100, 100);
CSize sz2(50,  25);
CSize szOut;

szOut = sz1 + sz2;

CSize szResult(150, 125);
ASSERT(szOut == szResult);

// works with SIZE, too

sz1 = CSize(100, 100);
SIZE sz3;
sz3.cx = 50;
sz3.cy = 25;

szOut = sz1 + sz3;
ASSERT(szOut == szResult);   

CSize::operator -

Os três primeiros desses operadores subtraem esse valor CSize do valor do parâmetro.

CSize operator-(SIZE size) const throw();
CPoint operator-(POINT point) const throw();
CRect operator-(const RECT* lpRect) const throw();
CSize operator-() const throw();

Comentários

O quarto operador, o unário menos, altera o sinal do valor CSize. Confira as seguintes descrições dos operadores individuais:

  • operador -( tamanho )

    Essa operação subtrai dois valores CSize.

  • operador -( ponto )

    Essa operação desloca (move) um valor POINT ou CPoint pelo inverso aditivo desse valor CSize. O cx e o cy desse valor CSize são subtraídos dos membros de dados x e y do valor POINT. É semelhante à versão de CPoint::operator -, que usa um parâmetro SIZE.

  • operador -( lpRect )

    Essa operação desloca (move) um valor RECT ou CRect pelo inverso aditivo desse valor CSize. Os membros cx e cy desse valor CSize são subtraídos dos membros de dados left, top, right e bottom do valor RECT. É semelhante à versão de CRect::operator -, que usa um parâmetro SIZE.

  • operator -()

    Essa operação retorna o inverso aditivo desse valor CSize.

Exemplo

CSize sz1(100, 100);
CSize sz2(50,  25);
CSize szOut;

szOut = sz1 - sz2;

CSize szResult(50, 75);
ASSERT(szOut == szResult);

// works with SIZE, too

sz1 = CSize(100, 100);
SIZE sz3;
sz3.cx = 50;
sz3.cy = 25;

szOut = sz1 - sz3;
ASSERT(szOut == szResult);   

Confira também

MDI de exemplo do MFC
Gráfico da hierarquia
Classe CRect
Classe CPoint