Partilhar via


CScrollView::SetScrollSizes

Chame SetScrollSizes quando a exibição está prestes a ser atualizada.

void SetScrollSizes( 
   int nMapMode, 
   SIZE sizeTotal, 
   const SIZE& sizePage = sizeDefault, 
   const SIZE& sizeLine = sizeDefault  
);

Parâmetros

  • nMapMode
    O modo de mapeamento para o dataset para esta exibição. Os valores possíveis são:

    Modo de mapeamento

    Unidade lógica

    o eixo y positivo estende…

    MM_TEXT

    1 pixel

    Para baixo

    MM_HIMETRIC

    Mm 0,01

    Para cima

    MM_TWIPS

    Em 1/1440

    Para cima

    MM_HIENGLISH

    Em 0,001

    Para cima

    MM_LOMETRIC

    Mm 0,1

    Para cima

    MM_LOENGLISH

    Em 0,01

    Para cima

    Todos esses modos são definidos pelo windows. Dois modos de mapeamento padrão, MM_ISOTROPIC e MM_ANISOTROPIC, não são usados para CScrollView. A biblioteca de classe fornece a função de membro de SetScaleToFitSize para dimensionar modo ao tamanho da janela. Três a coluna na tabela acima descreve a orientação coordenada.

  • sizeTotal
    O tamanho total do modo de rolagem. O membro de cx contém a extensão horizontal. O membro de cy contém a extensão vertical. Tamanhos estão em unidades lógicas. cx e cy deve ser maior ou igual a 0.

  • sizePage
    As quantidades horizontais e verticais rolar em cada direção em resposta a um clique do mouse em um eixo de barra de rolagem. O membro de cx contém a quantidade horizontal. O membro de cy contém a quantidade vertical.

  • sizeLine
    As quantidades horizontais e verticais rolar em cada direção em resposta a um clique do mouse em uma seta de rolagem. O membro de cx contém a quantidade horizontal. O membro de cy contém a quantidade vertical.

Comentários

Chama-o em sua sobrescrita da função de membro de OnUpdate para ajustar características de rolagem, por exemplo, quando o documento é exibida inicialmente ou quando altera o tamanho.

Você normalmente irá capturar informações de tamanho do documento associado de exibição chamando uma função de membro de documento, talvez GetMyDocSizechamado, que você forneça com sua classe derivado do documento. O código a seguir mostra essa abordagem:

CMyScrollDoc* pMyDoc = (CMyScrollDoc*)GetDocument();
SetScrollSizes(nMapMode, pMyDoc->GetMyDocSize());

Como alternativa, você pode as vezes precisa definir um tamanho fixo, como no código a seguir:

SetScrollSizes(nMapMode, CSize(100, 100));

Você deve definir o modo de mapeamento a algumas das janelas que mapeia modos exceto MM_ISOTROPIC ou MM_ANISOTROPIC. Se você desejar usar um modo mapeando unconstrained, chame a função de membro de SetScaleToFitSize em vez de SetScrollSizes.

Exemplo

void CMyScrollView::OnUpdate(CView* /*pSender*/, LPARAM /*lHint*/, 
   CObject* /*pHint*/)
{
   // Implement a GetMyDocSize() member function in  
   // your document class; it returns a CSize.
   CMyScrollDoc* pMyDoc = (CMyScrollDoc*)GetDocument();
   SetScrollSizes(MM_LOENGLISH, pMyDoc->GetMyDocSize());
   ResizeParentToFit();   // Default bShrinkOnly argument
}
void CMyScrollView::OnInitialUpdate()
{
   CScrollView::OnInitialUpdate();

   // The GetMyDocSize() member function is implemented in  
   // your document class. The return type is CSize.
   CMyScrollDoc* pMyDoc = (CMyScrollDoc*)GetDocument();
   SetScrollSizes(MM_TEXT, pMyDoc->GetMyDocSize());
}

Requisitos

Cabeçalho: afxwin.h

Consulte também

Referência

Classe CScrollView

Gráfico da hierarquia

CScrollView::SetScaleToFitSize

CScrollView::GetDeviceScrollSizes

CScrollView::GetTotalSize