Partilhar via


CScrollBar Classe

Observação

A biblioteca Microsoft Foundation Classes (MFC) continua a ser suportada. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.

Fornece a funcionalidade de um controlo de barra de deslocamento do Windows.

Sintaxe

class CScrollBar : public CWnd

Membros

Construtores Públicos

Nome Description
CScrollBar::CScrollBar Constrói um CScrollBar objeto.

Métodos Públicos

Nome Description
CScrollBar::Create Cria a barra de scroll do Windows e liga-a ao CScrollBar objeto.
CScrollBar::EnableScrollBar Ativa ou desativa uma ou ambas as setas de uma barra de scroll.
CScrollBar::GetScrollBarInfo Recupera informações sobre a barra de deslocamento usando uma SCROLLBARINFO estrutura.
CScrollBar::GetScrollInfo Recupera informações sobre a barra de scroll.
CScrollBar::GetScrollLimit Recupera o limite da barra de deslocamento
CScrollBar::GetScrollPos Recupera a posição atual de uma caixa de pergaminho.
CScrollBar::GetScrollRange Recupera as posições mínimas e máximas atuais da barra de deslocamento para a dada barra.
CScrollBar::SetScrollInfo Define a informação sobre a barra de deslocamento.
CScrollBar::SetScrollPos Define a posição atual de uma caixa de pergaminho.
CScrollBar::SetScrollRange Define valores mínimos e máximos de posição para a barra de deslocação dada.
CScrollBar::ShowScrollBar Mostra ou esconde uma barra de deslocamento.

Observações

Crias um controlo de barra de deslocamento em dois passos. Primeiro, chama o construtor CScrollBar para construir o CScrollBar objeto, depois chama a Create função membro para criar o controlo da barra de scroll do Windows e anexá-lo ao CScrollBar objeto.

Se criar um CScrollBar objeto dentro de uma caixa de diálogo (através de um recurso de diálogo), este CScrollBar é automaticamente destruído quando o utilizador fecha a caixa de diálogo.

Se criares um CScrollBar objeto dentro de uma janela, podes também ter de o destruir.

Se criares o CScrollBar objeto na pilha, ele é destruído automaticamente. Se criares o CScrollBar objeto no heap usando a new função, deves chamar delete o objeto para o destruir quando o utilizador terminar a barra de scroll do Windows.

Se alocar alguma memória no CScrollBar objeto, sobrescrita o CScrollBar destruidor para eliminar as alocações.

Para informações relacionadas sobre a utilização CScrollBarde , veja Controlos.

Hierarquia de herança

CObject

CCmdTarget

CWnd

CScrollBar

Requerimentos

Cabeçalho:afxwin.h

CScrollBar::Create

Cria a barra de scroll do Windows e liga-a ao CScrollBar objeto.

virtual BOOL Create(
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

Parâmetros

dwStyle
Especifica o estilo da barra de scroll. Aplique qualquer combinação de estilos de barra de deslocamento à barra de deslocamento.

rect
Especifica o tamanho e a posição da barra de deslocamento. Pode ser uma RECT estrutura ou um CRect objeto.

pParentWnd
Especifica a janela principal da barra de deslocamento, normalmente um CDialog objeto. Não pode ser NULL.

nID
O ID de controlo da barra de scroll.

Valor de retorno

Não nulo se for bem-sucedido; caso contrário, 0.

Observações

Constroem um CScrollBar objeto em dois passos. Primeiro, chama o construtor, que constrói o CScrollBar objeto; depois chama Create, que cria e inicializa a barra de scroll do Windows associada e anexa-a ao CScrollBar objeto.

Aplique os seguintes estilos de janelas a uma barra de deslocamento:

  • WS_CHILD Sempre

  • WS_VISIBLE Normalmente

  • WS_DISABLED Raramente

  • WS_GROUP Para agrupar controlos

Example

// Example 1:
// Create a horizontal CScrollBar control as a child window of CMyDialog
// class (a CDialog-derived class). The scroll bar is NOT visible until the
// call ShowScrollBar() is made. m_ScrollBarHorz is of type CScrollBar class,
// and it is a member variable in CMyDialog class.
VERIFY(m_ScrollBarHorz.Create(SBS_HORZ | SBS_TOPALIGN | WS_CHILD,
                              CRect(5, 5, 100, 30), this, IDC_SCROLLBARCTRL));

m_ScrollBarHorz.ShowScrollBar();

// Example 2:
// Create a vertical CScrollBar control as a child window of CMyDialog
// class (a CDialog-derived class). m_ScrollBarVert is of type CScrollBar
// class, and it is a member variable in CMyDialog class.
VERIFY(m_ScrollBarVert.Create(SBS_VERT | SBS_LEFTALIGN | WS_CHILD |
                                  WS_VISIBLE,
                              CRect(5, 30, 30, 130), this, IDC_SCROLLBARCTRL));

CScrollBar::CScrollBar

Constrói um CScrollBar objeto.

CScrollBar();

Observações

Depois de construir o objeto, chame a Create função membro para criar e inicializar a barra de scroll do Windows.

Example

CScrollBar m_ScrollBarHorz;

CScrollBar::EnableScrollBar

Ativa ou desativa uma ou ambas as setas de uma barra de scroll.

BOOL EnableScrollBar(UINT nArrowFlags = ESB_ENABLE_BOTH);

Parâmetros

nArrowFlags
Especifica se as setas de scroll estão ativadas ou desativadas e quais as setas ativadas ou desativadas. Este parâmetro pode ser um dos seguintes valores:

  • ESB_ENABLE_BOTH Ativa ambas as setas de uma barra de scroll.

  • ESB_DISABLE_LTUP Desativa a seta esquerda de uma barra de deslocamento horizontal ou a seta para cima de uma barra de deslocamento vertical.

  • ESB_DISABLE_RTDN Desativa a seta direita de uma barra de scroll horizontal ou a seta para baixo de uma barra de scroll vertical.

  • ESB_DISABLE_BOTH Desativa ambas as setas da barra de deslocamento.

Valor de retorno

Diferente de zero se as setas estiverem ativadas ou desativadas conforme especificado; caso contrário, 0, o que indica que as setas já estão no estado solicitado ou que ocorreu um erro.

Example

Veja o exemplo para CScrollBar::SetScrollRange.

CScrollBar::GetScrollBarInfo

Recupera a informação que a SCROLLBARINFO estrutura mantém sobre uma barra de deslocamento.

BOOL GetScrollBarInfo(PSCROLLBARINFO pScrollInfo) const;

Parâmetros

pScrollInfo
Um apontador para a SCROLLBARINFO estrutura.

Valor de retorno

Retornos TRUE do sucesso, FALSE do fracasso.

Observações

Esta função membro emula a funcionalidade da SBM_SCROLLBARINFO mensagem, conforme descrito no SDK do Windows.

CScrollBar::GetScrollInfo

Recupera a informação que a SCROLLINFO estrutura mantém sobre uma barra de deslocamento.

BOOL GetScrollInfo(
    LPSCROLLINFO lpScrollInfo,
    UINT nMask = SIF_ALL);

Parâmetros

lpScrollInfo
Um ponteiro para uma SCROLLINFO estrutura. Consulte o Windows SDK para mais informações sobre esta estrutura.

nMask
Especifica os parâmetros da barra de deslocamento a recuperar. O uso típico, SIF_ALL, especifica uma combinação de SIF_PAGE, SIF_POS, SIF_TRACKPOS, e SIF_RANGE. Consulte SCROLLINFO para mais informações sobre os nMask valores.

Valor de retorno

Se a mensagem recuperou algum valor, o retorno é TRUE. Caso contrário, é FALSE.

Observações

GetScrollInfo permite que as aplicações utilizem posições de scroll de 32 bits.

A SCROLLINFO estrutura contém informações sobre uma barra de deslocamento, incluindo as posições mínima e máxima, o tamanho da página e a posição da caixa de deslocamento (o polegar). Consulte o SCROLLINFO tópico de estrutura no SDK do Windows para mais informações sobre como alterar os padrões de estrutura.

Os manipuladores de mensagens MFC do Windows que indicam a posição da barra de deslocamento, CWnd::OnHScroll, e CWnd::OnVScroll, fornecem apenas 16 bits de dados de posição. GetScrollInfo e SetScrollInfo fornecem 32 bits de dados de posição da barra de deslocamento. Assim, uma aplicação pode chamar GetScrollInfo enquanto processa ou CWnd::OnVScrollCWnd::OnHScroll para obter dados de posição da barra de scroll de 32 bits.

Example

Veja o exemplo para CWnd::OnHScroll.

CScrollBar::GetScrollLimit

Recupera a posição máxima de scroll da barra de scroll.

int GetScrollLimit();

Valor de retorno

Especifica a posição máxima de uma barra de deslocamento se for bem-sucedido; caso contrário, 0.

Example

Veja o exemplo para CWnd::OnHScroll.

CScrollBar::GetScrollPos

Recupera a posição atual de uma caixa de pergaminho.

int GetScrollPos() const;

Valor de retorno

Especifica a posição atual da caixa de deslocamento se for bem-sucedido; caso contrário, 0.

Observações

A posição atual é um valor relativo que depende do intervalo de scrolling atual. Por exemplo, se o intervalo de scroll for de 100 a 200 e a caixa de scroll estiver no meio da barra, a posição atual é 150.

Example

Veja o exemplo para CWnd::OnHScroll.

CScrollBar::GetScrollRange

Copia as posições mínimas e máximas atuais da barra de rolagem para a barra de rolagem dada para as localizações especificadas por lpMinPos e lpMaxPos.

void GetScrollRange(
    LPINT lpMinPos,
    LPINT lpMaxPos) const;

Parâmetros

lpMinPos
Aponta para a variável inteira que deve receber a posição mínima.

lpMaxPos
Aponta para a variável inteira que recebe a posição máxima.

Observações

O intervalo padrão para um controlo de barra de deslocamento é vazio (ambos os valores são 0).

Example

Veja o exemplo para CWnd::OnHScroll.

CScrollBar::SetScrollInfo

Define a informação que a SCROLLINFO estrutura mantém sobre uma barra de deslocamento.

BOOL SetScrollInfo(
    LPSCROLLINFO lpScrollInfo,
    BOOL bRedraw = TRUE);

Parâmetros

lpScrollInfo
Um ponteiro para uma SCROLLINFO estrutura.

bRedraw
Especifica se a barra de deslocamento deve ser redesenhada para refletir a nova informação. Se bRedraw for TRUE, a barra de deslocamento é redesenhada. Se for FALSE, não é redesenhado. A barra de scroll é redesenhada por defeito.

Valor de retorno

Se for bem-sucedido, o retorno é TRUE. Caso contrário, é FALSE.

Observações

Deve fornecer os valores exigidos pelos SCROLLINFO parâmetros da estrutura, incluindo os valores das bandeiras.

A SCROLLINFO estrutura contém informações sobre uma barra de deslocamento, incluindo as posições mínima e máxima, o tamanho da página e a posição da caixa de deslocamento (o polegar). Consulte o SCROLLINFO tópico de estrutura no SDK do Windows para mais informações sobre como alterar os padrões de estrutura.

Example

// Set SCROLLINFO for the scroll bar. m_ScrollBarHorz is of type
// CScrollBar class, and it is a member variable in CMyDialog class.
SCROLLINFO info;
info.cbSize = sizeof(SCROLLINFO);
info.fMask = SIF_ALL;
info.nMin = 0;
info.nMax = 10;
info.nPage = 2;
info.nPos = 5;
info.nTrackPos = 2;
m_ScrollBarHorz.SetScrollInfo(&info);

CScrollBar::SetScrollPos

Define a posição atual de uma caixa de deslocamento para a especificada por nPos e, se especificado, redesenha a barra de deslocamento para refletir a nova posição.

int SetScrollPos(
    int nPos,
    BOOL bRedraw = TRUE);

Parâmetros

nPos
Especifica a nova posição para a caixa de pergaminho. Tem de estar dentro do intervalo de scroll.

bRedraw
Especifica se a barra de deslocamento deve ser redesenhada para refletir a nova posição. Se bRedraw for TRUE, a barra de deslocamento é redesenhada. Se for FALSE, não é redesenhado. A barra de scroll é redesenhada por defeito.

Valor de retorno

Especifica a posição anterior da caixa de deslocamento se for bem-sucedido; caso contrário, 0.

Observações

Definido bRedraw para FALSE sempre que a barra de scroll for redesenhada por uma chamada subsequente a outra função, para evitar que a barra de scroll seja redesenhada duas vezes num curto intervalo.

Example

Veja o exemplo do CScrollBar::SetScrollRange.

CScrollBar::SetScrollRange

Define valores mínimos e máximos de posição para a barra de deslocação dada.

void SetScrollRange(
    int nMinPos,
    int nMaxPos,
    BOOL bRedraw = TRUE);

Parâmetros

nMinPos
Especifica a posição mínima de scroll.

nMaxPos
Especifica a posição máxima de scroll.

bRedraw
Especifica se a barra de deslocamento deve ser redesenhada para refletir a alteração. Se bRedraw for TRUE, a barra de deslocamento é redesenhada; se FALSE, não é redesenhada. É redesenhado por defeito.

Observações

Define nMinPos e nMaxPos para 0 para esconder barras de scroll padrão.

Não chames esta função para esconder uma barra de scroll enquanto processas uma mensagem de notificação na barra de scroll.

Se uma chamada para SetScrollRange seguir imediatamente a uma chamada para a SetScrollPos função membro, defina bRedraw para SetScrollPos 0 para evitar que a barra de scroll seja redesenhada duas vezes.

A diferença entre os valores especificados por nMinPos e nMaxPos não pode ser superior a 32.767. O intervalo padrão para um controlo de barra de deslocamento é vazio (ambos nMinPos e nMaxPos são 0).

Example

// Sets minimum (0) and maximum (10) position values for the
// CScrollBar control. m_ScrollBarVert is of type CScrollBar class,
// and it is a member variable in CMyDialog class.
m_ScrollBarVert.SetScrollRange(0, 10);

// Set the position of the scroll box.
m_ScrollBarVert.SetScrollPos(5);

// Disable the down arrow of the scroll bar. By default, both arrows
// are enabled.
m_ScrollBarVert.EnableScrollBar(ESB_DISABLE_DOWN);

CScrollBar::ShowScrollBar

Mostra ou esconde uma barra de deslocamento.

void ShowScrollBar(BOOL bShow = TRUE);

Parâmetros

bShow
Especifica se a barra de scroll está mostrada ou oculta. Se este parâmetro for TRUE, a barra de scroll é mostrada; caso contrário, fica oculta.

Observações

Uma aplicação não deve chamar esta função para esconder uma barra de deslocamento enquanto processa uma mensagem de notificação na barra de deslocamento.

Example

Veja o exemplo para CScrollBar::Create.

Consulte também

CWnd Classe
Gráfico de Hierarquia
CButton Classe
CComboBox Classe
CEdit Classe
CListBox Classe
CStatic Classe
CDialog Classe