Compartilhar via


Classe CScrollView

CView com recursos de rolagem.

class CScrollView : public CView

Membros

Construtores protegidos

Nome

Descrição

CScrollView::CScrollView

Constrói um objeto de CScrollView .

Métodos públicos

Nome

Descrição

CScrollView::CheckScrollBars

Indica se o modo de exibição de rolagem horizontal e tem barras de rolagem vertical.

CScrollView::FillOutsideRect

Preenche a área de uma exibição fora da área de rolagem.

CScrollView::GetDeviceScrollPosition

Obtém a atual posição de rolagem em unidades de dispositivo.

CScrollView::GetDeviceScrollSizes

Obtém o modo atual de mapeamento, o tamanho total, e a linha e tamanhos de página de exibição de rolagem. Tamanhos estão em unidades de dispositivo.

CScrollView::GetScrollPosition

Obtém a atual posição de rolagem em unidades lógicas.

CScrollView::GetTotalSize

Obtém o tamanho total do modo de rolagem em unidades lógicas.

CScrollView::ResizeParentToFit

Faz com que o tamanho de exibição dite o tamanho do seu tile.

CScrollView::ScrollToPosition

Rola o modo de exibição um determinado ponto, especificado em unidades lógicas.

CScrollView::SetScaleToFitSize

Coloca o modo de rolagem no modo de escala-à- ajuste.

CScrollView::SetScrollSizes

Defina o modo de mapeamento de exibição de rolagem, tamanho total, e a rolagem horizontal e vertical atinge.

Comentários

Você pode manipular o padrão rolagem você mesmo em qualquer classe derivada de CView substituindo as funções de membro mensagem- mapeadas de OnHScroll e de OnVScroll . Mas CScrollView adicione os seguintes recursos aos recursos de CView :

  • Gerencia tamanhos da janela e o viewport e modos de mapeamento.

  • Rola automaticamente em resposta às mensagens de barra de rolagem.

  • Rola automaticamente em resposta às mensagens do teclado, de um mouse que não são de rolagem, ou a roda de IntelliMouse.

Para rolar automaticamente em resposta às mensagens do teclado, adicione uma mensagem WM_KEYDOWN, e testar para VK_DOWN, VK_PREV e chamada SetScrollPos.

Você pode manipular rolagem da roda do mouse você mesmo substituindo as funções de membro mensagem- mapeadas de OnMouseWheel e de OnRegisteredMouseWheel . Como são para CScrollView, essas funções de membro oferecem suporte ao comportamento recomendado para WM_MOUSEWHEEL, a mensagem de rotação de roda.

Para aproveitar de rolagem automático, derive sua classe de visualização de CScrollView em vez de CView. Quando o modo é criada primeiramente, se você desejar calcular o tamanho de exibição de rolagem baseada no tamanho do documento, chame a função de membro de SetScrollSizes de sua sobrescrita de CView::OnInitialUpdate ou de CView::OnUpdate. (Você deve escrever seu próprio código para ver o tamanho do documento. Para um exemplo, consulte O exemplo rabiscar.)

A chamada para a função de membro de SetScrollSizes define o modo de mapeamento de exibição, as dimensões gerais do modo de rolagem, e as quantidades para rolar horizontalmente e verticalmente. Todos os tamanhos estão em unidades lógicas. O tamanho lógico de exibição é calculado em geral dos dados armazenados no documento, mas em alguns casos você pode querer especificar um tamanho fixo. Para exemplos das duas abordagens, consulte CScrollView::SetScrollSizes.

Você especifica as quantidades para rolar horizontalmente e verticalmente em unidades lógicas. Por padrão, se o usuário clica em um eixo de barra de rolagem fora da caixa de rolagem, CScrollView colocar uma página “.” Se o usuário clica em uma seta de rolagem em qualquer uma das extremidades de uma barra de rolagem, CScrollView colocar uma linha “.” Por padrão, uma página é 1/10 de tamanho total de exibição; uma linha é 1/10 de tamanho de página. Substituir esses valores padrão passando tamanhos personalizados na função de membro de SetScrollSizes . Por exemplo, você pode definir o tamanho horizontal qualquer fração de altura tamanho total e de tamanho vertical para a altura de uma linha em uma fonte atual.

Em vez de rolagem, CScrollView pode dimensionar automaticamente modo ao tamanho da janela atual. Em esse modo, a exibição não tem barra de rolagem lógica e a exibição é alongada ou reduzida para caber exatamente a área cliente da janela. Para usar este recurso de escala-à- ajuste, chame CScrollView::SetScaleToFitSize. (Chamar SetScaleToFitSize ou SetScrollSizes, mas não ambos.)

Antes que a função de membro de OnDraw de sua classe derivada de exibição é chamada, CScrollView ajustar automaticamente a fonte do viewport para o objeto de dispositivo contexto de CPaintDC que passa a OnDraw.

Para ajustar a fonte do viewport para a janela de rolagem, CScrollView substitui CView::OnPrepareDC. Este ajuste é automática para o contexto do dispositivo de CPaintDC que CScrollView passa a OnDraw, mas você deve chamar CScrollView::OnPrepareDC você mesmo para todos os outros contextos de dispositivo você usar, como CClientDC. Você pode substituir CScrollView::OnPrepareDC para definir a caneta, a cor do plano de fundo, e outros atributos de desenho, mas chama a classe base para fazer ao dimensionamento.

As barras de rolagem podem aparecer em três local relativo a um modo de exibição, conforme mostrado nos seguintes casos:

  • As barras de rolagem estilo padrão do windows podem ser definidas para a exibição usando WS_HSCROLL e WS_VSCROLLEstilos do windows.

  • Controles de barra de rolagem também podem ser adicionados ao quadro que contém a exibição em esse caso, a estrutura WM_HSCROLL e encaminha mensagens de WM_VSCROLL da janela de quadro chave para o modo ativo no momento.

  • A estrutura também encaminha mensagens de rolagem de um controle separator de CSplitterWnd ao formulário ativo separator (uma exibição). Quando colocado em CSplitterWnd com barras de rolagem compartilhados, um objeto de CScrollView usará compartilhados em vez de criar seus próprios.

Para obter mais informações sobre como usar CScrollView, consulte Arquitetura do documento/exibição e Classes derivadas de exibição disponíveis no MFC.

Hierarquia de herança

CObject

CCmdTarget

CWnd

CView

CScrollView

Requisitos

Cabeçalho: afxwin.h

Consulte também

Referência

Classe CView

Gráfico da hierarquia

Classe CView

Classe CSplitterWnd

Conceitos

O MFC exemplos DIBLOOK