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