CWnd::OnHScroll
A estrutura chama esta função de membro quando o usuário clica horizontal da janela BAR de rolar.
afx_msg void OnHScroll(
UINT nSBCode,
UINT nPos,
CScrollBar* pScrollBar
);
Parâmetros
nSBCode
Especifica a rolar-código de barras indica que o usuário da solicitação de rolar.Esse parâmetro pode ser uma das seguintes opções:SB_LEFT rolar para esquerda.
SB_ENDSCROLL rolar de participante.
SB_LINELEFT Rolar à esquerda.
SB_LINERIGHT rolar right.
SB_PAGELEFT rolar uma página à esquerda.
SB_PAGERIGHT rolar uma página à direita.
SB_RIGHT rolar extrema direita.
SB_THUMBPOSITION Role até a posição absoluta.A posição corrente é especificada pelo nPos parâmetro.
SB_THUMBTRACK Arrastar caixa de rolar posição especificada.A posição corrente é especificada pelo nPos parâmetro.
nPos
Especifica a posição da caixa de rolar se o código de BAR de rolar é SB_THUMBPOSITION or SB_THUMBTRACK; caso contrário, não usado.Dependendo do intervalo inicial de rolar, nPos pode ser negativo e deve ser convertido em um int Se necessário.pScrollBar
Se a mensagem de rolar for proveniente de um controle de BAR de rolar, contém um ponteiro para o controle.Se o usuário clicou em uma janela BAR de rolar, este parâmetro é NULO.O ponteiro pode ser temporário e não deve ser armazenado para uso posterior.
Comentários
The SB_THUMBTRACKcódigo de barras de rolar de normalmente é usado por aplicativos que oferecem alguns comentários enquanto o caixa de rolar estiver sendo arrastado.
Se um aplicativo rola o Sumário controlado pela BAR de rolar, ele também deve reiniciar a posição da caixa de rolar com o SetScrollPosfunção de membro .
Observação: |
---|
Essa função de membro é chamada pela estrutura para permitir que seu aplicativo manipular uma mensagem do Windows.Os parâmetros passados para sua função refletem os parâmetros recebidos pela estrutura quando a mensagem foi recebida.Se você chamar a implementação da classe de base dessa função, essa implementação usará os parâmetros passados originalmente com a mensagem e não os parâmetros que você fornecer para a função. |
Exemplo
void CMdiView::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
// Get the minimum and maximum scroll-bar positions.
int minpos;
int maxpos;
GetScrollRange(SB_HORZ, &minpos, &maxpos);
maxpos = GetScrollLimit(SB_HORZ);
// Get the current position of scroll box.
int curpos = GetScrollPos(SB_HORZ);
// Determine the new position of scroll box.
switch (nSBCode)
{
case SB_LEFT: // Scroll to far left.
curpos = minpos;
break;
case SB_RIGHT: // Scroll to far right.
curpos = maxpos;
break;
case SB_ENDSCROLL: // End scroll.
break;
case SB_LINELEFT: // Scroll left.
if (curpos > minpos)
curpos--;
break;
case SB_LINERIGHT: // Scroll right.
if (curpos < maxpos)
curpos++;
break;
case SB_PAGELEFT: // Scroll one page left.
{
// Get the page size.
SCROLLINFO info;
GetScrollInfo(SB_HORZ, &info, SIF_ALL);
if (curpos > minpos)
curpos = max(minpos, curpos - (int) info.nPage);
}
break;
case SB_PAGERIGHT: // Scroll one page right.
{
// Get the page size.
SCROLLINFO info;
GetScrollInfo(SB_HORZ, &info, SIF_ALL);
if (curpos < maxpos)
curpos = min(maxpos, curpos + (int) info.nPage);
}
break;
case SB_THUMBPOSITION: // Scroll to absolute position. nPos is the position
curpos = nPos; // of the scroll box at the end of the drag operation.
break;
case SB_THUMBTRACK: // Drag scroll box to specified position. nPos is the
curpos = nPos; // position that the scroll box has been dragged to.
break;
}
// Set the new position of the thumb (scroll box).
SetScrollPos(SB_HORZ, curpos);
CView::OnHScroll(nSBCode, nPos, pScrollBar);
}
Requisitos
Cabeçalho: afxwin.h