CScrollView

A classe CScrollView é um CView com rolagem recursos.

Você pode manipular a rolagem-se padrão em qualquer classe derivado de CView , substituindo as mensagem mapeada OnHScroll e OnVScroll funções de membro. Mas CScrollView adiciona os seguintes recursos para seus recursos de CView:

Você pode lidar com a roda do mouse rolagem você mesmo, substituindo funções de membro de OnMouseWheel e OnRegisteredMouseWheel mensagem mapeada. Por serem CScrollView, essas funções de membro suportam o comportamento recomendado para WM_MOUSEWHEEL, a mensagem de rotação de roda.

Para tirar proveito de rolagem automática, derive a classe de modo de exibição de CScrollView , em vez de CView. Quando o modo de exibição é criado, se você quiser calcular o tamanho da exibição rolável baseado no tamanho do documento, chame a função de membro SetScrollSizes de sua Substituir de CView:: OnInitialUpdate ou CView:: OnUpdate. (Você deve escrever seu próprio código para consultar o tamanho do documento. Para um exemplo, consulte Vistas reforço no Visual C++ tutoriais.)

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

Você especificar os valores para rolar horizontalmente e verticalmente em unidades lógicas. Por padrão, se o usuário clicar em um eixo de barra de rolagem fora da caixa de rolagem, CScrollView rola uma "página". Se o usuário clica em uma seta de rolagem em cada extremidade de uma barra de rolagem, CScrollView rola uma "linha". Por padrão, uma página é 1/10 do tamanho total do Exibir; uma linha é 1/10 do tamanho da página. Substituir esses valores padrão passando tamanhos personalizados na função de membro SetScrollSizes . Por exemplo, você pode definir o tamanho horizontal para alguma fração da largura do tamanho total e o tamanho vertical para a altura de uma linha na fonte corrente.

Em vez de rolagem, CScrollView pode dimensionar automaticamente o modo de exibição para o tamanho da janela atual. Neste modo, o Exibir possui sem barras de rolagem e o modo de exibição lógico é esticado ou encolhido para caber exatamente área cliente da janela. Para usar esse recurso de escala para ajustar, chame CScrollView::SetScaleToFitSize. (Chamar SetScaleToFitSize ou SetScrollSizes, mas não ambos).

Antes do OnDraw função de membro de sua classe de Exibir derivada é chamada, CScrollView ajusta automaticamente a origem porta de visualização para o objeto dispositivo-contexto CPaintDC que ela passa paraOnDraw.

Para ajustar a origem porta de visualização para a janela de rolagem, CScrollView substitui CView:: OnPrepareDC. Esse ajuste é automático para o contexto de dispositivo de CPaintDC CScrollView passa para OnDraw , mas você mesmo deve chamar CScrollView::OnPrepareDC para outros contextos de dispositivo usar, tais como um CClientDC. Você pode substituir CScrollView::OnPrepareDC para definir a caneta, cor de fundo e outros atributos de desenho, mas chamar a classe base para dimensionamento.

Barras de rolagem podem aparecer em três lugares relativo para um modo de exibição, como mostrado nos seguintes casos:

Para obter mais informações sobre o uso CScrollView, consulte Tópicos de arquitetura de documento/Exibir e Derivado Exibir Classes no Guia do programador do Visual C++.

# include lt;afxwin.h>

Membros da classeClasse base | Gráfico de hierarquia

Amostra  MFC exemplo DIBLOOK

Co&nsulte tambémnbsp;CView, CSplitterWnd

Index