Rolar a posição da caixa e intervalo de rolagem

A posição do caixa de rolagem é representada como um inteiro; é relativo para a extremidade esquerda ou superior da barra de rolagem, depending on se a barra de rolagem é horizontal ou vertical. A situação deve estar dentro dos valores mínimos e máximos do intervalo de rolagem. Por exemplo, em uma barra de rolagem com uma escala de 0 a 100, posição 50 está no meio, com as posições restantes distribuídas igualmente junto a barra de rolagem. O intervalo inicial depende da barra de rolagem. Barras de rolagem padrão tem um intervalo inicial de 0 a 100; Scroll barra controles têm um intervalo vazio (valores mínimo e máximo são zero), a menos que você fornecer um intervalo explícito quando o Controlarar é criado. Você pode alterar o intervalo a qualquer momento. Você pode usar o SetScrollInfo função para definir valores de intervalo e o GetScrollInfo função para recuperar o atual valores intervalo.

Um aplicativo normalmente ajusta o intervalo de rolagem para números inteiros convenientes, tornando mais fácil para traduzir a posição caixa de rolagem em um valor correspondente para o objeto de dados a ser rolado. Por exemplo, se um aplicativo deve exibir 260 linhas de um arquivo de texto em uma janela que pode mostrar apenas 16 linhas por vez, o intervalo de barra de rolagem vertical pode ser definido como 1 por meio de 244. Se a caixa de rolagem está na posição 1, a primeira linha será na parte superior da janela. Se a caixa de rolagem é na posição 244, a última linha (linha 260) será na parte inferior da janela. Se um aplicativo tenta especificar um valor de posição que é menor que o mínimo ou mais do que o máximo, o valor de intervalo de rolagem mínimo ou máximo é usado em vez disso.

Você pode definir um tamanho de página para uma barra de rolagem. O Tamanho de página representa o número de unidades de dados que podem caber na área de cliente da janela do proprietário, dada seu tamanho atual. Por exemplo, se a área do cliente pode conter 16 linhas de texto, um aplicativo seria definir o tamanho da página 16. O sistema usa o tamanho da página, juntamente com a rolagem intervalo e comprimento do eixo de rolagem, para definir o tamanho da caixa de rolagem. Sempre que uma janela que contém uma barra de rolagem é redimensionada, um aplicativo deve chamar o SetScrollInfo função para definir o tamanho da página. Um aplicativo pode recuperar o tamanho de página atual chamando o envio GetScrollInfo função.

Para estabelecer um relacionamento úteis entre o intervalo de barra de rolagem e o objeto de dados, um aplicativo deve ajustar o intervalo sempre que o tamanho dos dados objeto alterações.

Conforme o usuário move a caixa de rolagem em uma barra de rolagem, a barra de rolagem relatórios a posição do caixa de rolagem como um inteiro no intervalo de rolagem. Se a posição é o valor mínimo, a caixa de rolagem é na parte superior de uma barra de rolagem vertical ou na extremidade esquerda de uma barra de rolagem horizontal. Se a posição é o valor máximo, a caixa de rolagem é na parte inferior de uma barra de rolagem vertical ou na extremidade direita de uma barra de rolagem horizontal.

O valor máximo que uma barra de rolagem pode relatório (ou seja, o máximo rolagem posição) depende do tamanho de página. Se a barra de rolagem tem um tamanho de página maior que um, o máximo rolagem posição é menor que o valor máximo de intervalo. Você pode usar a seguinte fórmula para calcular o máximo rolagem posição:

MaxScrollPos = MaxRangeValue-(PageSize - 1) 

 

Um aplicativo deve mover a caixa de rolagem em uma barra de rolagem. Embora o usuário faz uma solicitação para rolagem em uma barra de rolagem, a barra de rolagem não atualiza automaticamente a posição do caixa de rolagem. Em vez disso, ele passa a solicitação para o janela pai, que deve rolar os dados e atualizar a posição do caixa de rolagem. Um aplicativo usa o SetScrollInfo função para atualizar a posição do caixa de rolagem; caso contrário, ele usa o SetScrollPos função. Porque ele controla o movimento do caixa de rolagem, o aplicativo pode mover a caixa de rolagem em incrementos que funcionam melhor para os dados sendo rolados.

Index