Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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
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_CHILDSempreWS_VISIBLENormalmenteWS_DISABLEDRaramenteWS_GROUPPara 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_BOTHAtiva ambas as setas de uma barra de scroll.ESB_DISABLE_LTUPDesativa a seta esquerda de uma barra de deslocamento horizontal ou a seta para cima de uma barra de deslocamento vertical.ESB_DISABLE_RTDNDesativa a seta direita de uma barra de scroll horizontal ou a seta para baixo de uma barra de scroll vertical.ESB_DISABLE_BOTHDesativa 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