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
CScrollView::SetScaleToFitSize