Classe CPagerCtrl

A classe CPagerCtrl encapsula o controle de paginação do Windows, que pode rolar para exibir uma janela contida que não se ajusta à janela que a contém.

Sintaxe

class CPagerCtrl : public CWnd

Membros

Construtores públicos

Nome Descrição
CPagerCtrl::CPagerCtrl Constrói um objeto CPagerCtrl.

Métodos públicos

Nome Descrição
CPagerCtrl::Create Cria um controle de paginação com estilos especificados e o anexa ao objeto atual CPagerCtrl.
CPagerCtrl::CreateEx Cria um controle de paginação com estilos estendidos especificados e o anexa ao objeto atual CPagerCtrl.
CPagerCtrl::ForwardMouse Habilita ou desabilita o encaminhamento de mensagens WM_MOUSEMOVE para a janela contida no controle de paginação atual.
CPagerCtrl::GetBkColor Recupera a cor da tela de fundo do controle de paginação atual.
CPagerCtrl::GetBorder Recupera o tamanho da borda do controle de paginação atual.
CPagerCtrl::GetButtonSize Recupera o tamanho do botão do controle de paginação atual.
CPagerCtrl::GetButtonState Recupera o estado do botão especificado no controle de paginação atual.
CPagerCtrl::GetDropTarget Recupera a interface IDropTarget para o controle de paginação atual.
CPagerCtrl::GetScrollPos Recupera a posição de rolagem do controle de paginação atual.
CPagerCtrl::IsButtonDepressed Indica se o botão especificado do controle de paginação atual está no estado pressed.
CPagerCtrl::IsButtonGrayed Indica se o botão especificado do controle de paginação atual está no estado grayed.
CPagerCtrl::IsButtonHot Indica se o botão especificado do controle de paginação atual está no estado hot.
CPagerCtrl::IsButtonInvisible Indica se o botão especificado do controle de paginação atual está no estado invisible.
CPagerCtrl::IsButtonNormal Indica se o botão especificado do controle de paginação atual está no estado normal.
CPagerCtrl::RecalcSize Faz com que o controle de paginação atual recalcule o tamanho da janela contida.
CPagerCtrl::SetBkColor Define a cor da tela de fundo do controle de paginação atual.
CPagerCtrl::SetBorder Define o tamanho da borda do controle de paginação atual.
CPagerCtrl::SetButtonSize Define o tamanho do botão do controle de paginação atual.
CPagerCtrl::SetChild Define a janela contida para o controle de paginação atual.
CPagerCtrl::SetScrollPos Define a posição de rolagem do controle de paginação atual.

Comentários

Um controle de paginação é uma janela que contém outra janela linear e maior que a janela que contém e permite rolar a janela contida para a exibição. O controle de paginação exibe dois botões de rolagem que desaparecem automaticamente quando a janela contida é rolada até sua extensão mais distante e reaparece de outra forma. Você pode criar um controle de paginação que rola horizontal ou verticalmente.

Por exemplo, se o aplicativo tiver uma barra de ferramentas que não seja larga o suficiente para mostrar todos os seus itens, você poderá atribuir a barra de ferramentas a um controle de paginação e os usuários poderão rolar a barra de ferramentas para a esquerda ou direita para acessar todos os itens. O Microsoft Internet Explorer Versão 4.0 (commctrl.dll versão 4.71) apresenta o controle de paginação.

A classe CPagerCtrl é derivada da classe CWnd. Para mais informações e uma ilustração de um controle de paginação, confira Controles de Paginação.

Hierarquia de herança

CObject

CCmdTarget

CWnd

CPagerCtrl

Requisitos

Cabeçalho: afxcmn.h

CPagerCtrl::CPagerCtrl

Constrói um objeto CPagerCtrl.

CPagerCtrl();

Comentários

Use o método CPagerCtrl::Create ou CPagerCtrl::CreateEx para criar um controle de paginação e anexá-lo ao objeto CPagerCtrl.

CPagerCtrl::Create

Cria um controle de paginação com estilos especificados e o anexa ao objeto atual CPagerCtrl.

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

Parâmetros

dwStyle
[in] Uma combinação bit a bit (OR) de estilos de janela e estilos de controle de paginação a serem aplicados ao controle.

rect
[in] Uma referência a uma estrutura RECT que contém a posição e o tamanho do controle nas coordenadas de cliente.

pParentWnd
[in] Um ponteiro para um objeto CWnd que é a janela pai do controle. Esse parâmetro não pode ser NULL.

Nid
[in] A ID do controle.

Valor de retorno

TRUE se o método for bem-sucedido; caso contrário, FALSE.

Comentários

Para criar um controle de paginação, declare uma variável CPagerCtrl e chame o método CPagerCtrl::Create ou CPagerCtrl::CreateEx nessa variável.

Exemplo

O exemplo a seguir cria um controle de paginação e usa o método CPagerCtrl::SetChild para associar um controle de botão muito longo ao controle de paginação. O exemplo usa o método CPagerCtrl::SetButtonSize para definir a altura do controle de paginação como 20 pixels e o método CPagerCtrl::SetBorder para definir a espessura da borda como 1 pixel.

// Initialize the dropdown menu of the splitbutton control.
m_splitButton.SetDropDownMenu(IDR_MENU1, 0);

// Create the pager control.
BOOL nRet;
CRect rect;
GetClientRect(&rect);
nRet = m_pager.Create(
    (WS_VISIBLE | WS_CHILD | PGS_HORZ),
    CRect(rect.Width() / 4, 5, (rect.Width() * 3) / 4, 55),
    this,
    IDC_PAGER1);

m_pager.GetClientRect(&rect);
nRet = m_button.Create(
    _T("This is a very, very long button. 012345678901234567890"),
    (WS_VISIBLE | WS_CHILD), // Do not use CCS_NORESIZE.
    CRect(0, 0, rect.Width(), 30),
    &m_pager, IDC_BUTTON1);

m_pager.SetChild(m_button.m_hWnd);
m_pager.SetButtonSize(20);
m_pager.SetBorder(1);

CPagerCtrl::CreateEx

Cria um controle de paginação com estilos estendidos especificados e o anexa ao objeto atual CPagerCtrl.

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

Parâmetros

dwExStyle
[in] Uma combinação bit a bit de estilos estendidos a serem aplicados ao controle. Para obter mais informações, consulte o parâmetro dwExStyle da função CreateWindowEx.

dwStyle
[in] Uma combinação bit a bit (OR) de estilos de janela e estilos de controle de paginação a serem aplicados ao controle.

rect
[in] Uma referência a uma estrutura RECT que contém a posição e o tamanho do controle nas coordenadas de cliente.

pParentWnd
[in] Um ponteiro para um objeto CWnd que é a janela pai do controle. Esse parâmetro não pode ser NULL.

Nid
[in] A ID do controle.

Valor de retorno

TRUE se o método for bem-sucedido; caso contrário, FALSE.

Comentários

Para criar um controle de paginação, declare uma variável CPagerCtrl e chame o método CPagerCtrl::Create ou CPagerCtrl::CreateEx nessa variável.

CPagerCtrl::ForwardMouse

Habilita ou desabilita o encaminhamento de mensagens WM_MOUSEMOVE para a janela contida no controle de paginação atual.

void ForwardMouse(BOOL bForward);

Parâmetros

bForward
[in] TRUE para encaminhar mensagens de mouse ou FALSE para não encaminhar mensagens do mouse.

Comentários

Esse método envia a mensagem PGM_FORWARDMOUSE, que é descrita no SDK do Windows.

CPagerCtrl::GetBorder

Recupera o tamanho da borda do controle de paginação atual.

int GetBorder() const;

Valor de retorno

O tamanho atual da borda, medido em pixels.

Comentários

Esse método envia a mensagem PGM_GETBORDER, que é descrita no SDK do Windows.

Exemplo

O exemplo a seguir usa o método CPagerCtrl::GetBorder para recuperar a espessura da borda do controle de paginação.

void CCSplitButton_s2Dlg::OnXBorder()
{
   int borderSize = m_pager.GetBorder();
   CString str;
   str.Format(_T("The border is %d pixel(s) thick."), borderSize);
   MessageBox(str);
}

CPagerCtrl::GetBkColor

Recupera a cor da tela de fundo do controle de paginação atual.

COLORREF GetBkColor() const;

Valor de retorno

Um valor COLORREF que contém a cor da tela de fundo atual do controle de paginação.

Comentários

Esse método envia a mensagem PGM_GETBKCOLOR, que é descrita no SDK do Windows.

Exemplo

O exemplo a seguir usa o método CPagerCtrl::SetBkColor para definir a cor da tela de fundo do controle de paginação como vermelho e o método CPagerCtrl::GetBkColor para confirmar se a alteração foi feita.

void CCSplitButton_s2Dlg::OnXColor()
{
   COLORREF originalColor;
   //  Set color to red.
   originalColor = m_pager.SetBkColor(RGB(255, 0, 0));
   if (m_pager.GetBkColor() != RGB(255, 0, 0))
   {
      MessageBox(_T("Control did not return RED as the previous color."));
   }
   // The following statement is one way to restore the color.
   // m_pager.SetBkColor( originalColor );
}

CPagerCtrl::GetButtonSize

Recupera o tamanho do botão do controle de paginação atual.

int GetButtonSize() const;

Valor de retorno

O tamanho do botão atual, medido em pixels.

Comentários

Esse método envia a mensagem PGM_GETBUTTONSIZE, que é descrita no SDK do Windows.

Se o controle de paginação tiver o estilo PGS_HORZ, o tamanho do botão determinará a largura dos botões do pager e, se o controle de paginação tiver o estilo PGS_VERT, o tamanho do botão determinará a altura dos botões de paginação. Para mais informações, confira Estilos de controle de paginação.

CPagerCtrl::GetButtonState

Recupera o estado do botão de rolagem especificado no controle de paginação atual.

DWORD GetButtonState(int iButton) const;

Parâmetros

iButton
[in] Indica o botão para o qual o estado é recuperado. Se o estilo de controle de paginação for PGS_HORZ, especifique PGB_TOPORLEFT para o botão esquerdo e PGB_BOTTOMORRIGHT para o botão direito. Se o estilo de controle de paginação for PGS_VERT, especifique PGB_TOPORLEFT para o botão superior e PGB_BOTTOMORRIGHT para o botão inferior. Para mais informações, confira Estilos de controle de paginação.

Valor de retorno

O estado do botão especificado pelo parâmetro iButton. O estado é PGF_INVISIBLE, PGF_NORMAL, PGF_GRAYED, PGF_DEPRESSED ou PGF_HOT. Para mais informações, confira a seção Valor retornado da mensagem PGM_GETBUTTONSTATE.

Comentários

Esse método envia a mensagem PGM_GETBUTTONSTATE, que é descrita no SDK do Windows.

CPagerCtrl::GetDropTarget

Recupera a interface IDropTarget para o controle de paginação atual.

IDropTarget* GetDropTarget() const;

Valor de retorno

Um ponteiro para a interface IDropTarget do controle de paginação atual.

Comentários

IDropTarget é uma das interfaces implementadas para dar suporte a operações do tipo "arrastar e soltar" em seu aplicativo.

Esse método envia a mensagem PGM_GETDROPTARGET, que é descrita no SDK do Windows. O chamador desse método é responsável por chamar o membro Release da interface IDropTarget quando a interface não é mais necessária.

CPagerCtrl::GetScrollPos

Recupera a posição de rolagem do controle de paginação atual.

int GetScrollPos() const;

Valor de retorno

A posição de rolagem atual, medida em pixels.

Comentários

Esse método envia a mensagem PGM_GETPOS, que é descrita no SDK do Windows.

Exemplo

O exemplo a seguir usa o método CPagerCtrl::GetScrollPos para recuperar a posição de rolagem atual do controle de paginação. Se o controle de paginação ainda não estiver rolado para zero, a posição mais à esquerda, o exemplo usará o método CPagerCtrl::SetScrollPos para definir a posição de rolagem como zero.

void CCSplitButton_s2Dlg::OnXScrollposition()
{
   int pos;
   CString str;
   pos = m_pager.GetScrollPos();
   if (pos != 0)
      m_pager.SetScrollPos(0);
   str.Format(_T("Old position = %d; new position = 0"), pos);
   MessageBox(str);
}

CPagerCtrl::IsButtonDepressed

Indica se o botão de rolagem especificado do controle de paginação atual está no estado pressionado.

BOOL IsButtonDepressed(int iButton) const;

Parâmetros

iButton
[in] Indica o botão para o qual o estado é recuperado. Se o estilo de controle de paginação for PGS_HORZ, especifique PGB_TOPORLEFT para o botão esquerdo e PGB_BOTTOMORRIGHT para o botão direito. Se o estilo de controle de paginação for PGS_VERT, especifique PGB_TOPORLEFT para o botão superior e PGB_BOTTOMORRIGHT para o botão inferior. Para mais informações, confira Estilos de controle de paginação.

Valor de retorno

TRUE se o botão especificado estiver no estado pressionado; caso contrário, FALSE.

Comentários

Esse método envia a mensagem PGM_GETBUTTONSTATE, que é descrita no SDK do Windows. Em seguida, ele testa se o estado retornado é PGF_DEPRESSED. Para mais informações, confira a seção Valor retornado da mensagem PGM_GETBUTTONSTATE.

CPagerCtrl::IsButtonGrayed

Indica se o botão de rolagem especificado do controle de paginação atual está em estado esmaecido.

BOOL IsButtonGrayed(int iButton) const;

Parâmetros

iButton
[in] Indica o botão para o qual o estado é recuperado. Se o estilo de controle de paginação for PGS_HORZ, especifique PGB_TOPORLEFT para o botão esquerdo e PGB_BOTTOMORRIGHT para o botão direito. Se o estilo de controle de paginação for PGS_VERT, especifique PGB_TOPORLEFT para o botão superior e PGB_BOTTOMORRIGHT para o botão inferior. Para mais informações, confira Estilos de controle de paginação.

Valor de retorno

TRUE se o botão especificado estiver em estado esmaecido; caso contrário, FALSE.

Comentários

Esse método envia a mensagem PGM_GETBUTTONSTATE, que é descrita no SDK do Windows. Em seguida, ele testa se o estado retornado é PGF_GRAYED. Para mais informações, confira a seção Valor retornado da mensagem PGM_GETBUTTONSTATE.

CPagerCtrl::IsButtonHot

Indica se o botão de rolagem especificado do controle de paginação atual está em estado quente.

BOOL IsButtonHot(int iButton) const;

Parâmetros

iButton
[in] Indica o botão para o qual o estado é recuperado. Se o estilo de controle de paginação for PGS_HORZ, especifique PGB_TOPORLEFT para o botão esquerdo e PGB_BOTTOMORRIGHT para o botão direito. Se o estilo de controle de paginação for PGS_VERT, especifique PGB_TOPORLEFT para o botão superior e PGB_BOTTOMORRIGHT para o botão inferior. Para mais informações, confira Estilos de controle de paginação.

Valor de retorno

TRUE se o botão especificado estiver em estado quente; caso contrário, FALSE.

Comentários

Esse método envia a mensagem PGM_GETBUTTONSTATE, que é descrita no SDK do Windows. Em seguida, ele testa se o estado retornado é PGF_HOT. Para mais informações, confira a seção Valor retornado da mensagem PGM_GETBUTTONSTATE.

CPagerCtrl::IsButtonInvisible

Indica se o botão de rolagem especificado do controle de paginação atual está em estado invisível.

BOOL IsButtonInvisible(int iButton) const;

Parâmetros

iButton
[in] Indica o botão para o qual o estado é recuperado. Se o estilo de controle de paginação for PGS_HORZ, especifique PGB_TOPORLEFT para o botão esquerdo e PGB_BOTTOMORRIGHT para o botão direito. Se o estilo de controle de paginação for PGS_VERT, especifique PGB_TOPORLEFT para o botão superior e PGB_BOTTOMORRIGHT para o botão inferior. Para mais informações, confira Estilos de controle de paginação.

Valor de retorno

TRUE se o botão especificado estiver em estado invisível; caso contrário, FALSE.

Comentários

O Windows torna o botão de rolagem em uma direção específica invisível quando a janela contida é rolada até sua extensão mais distante porque continuar a clicar no botão não pode colocar mais da janela contida em exibição.

Esse método envia a mensagem PGM_GETBUTTONSTATE, que é descrita no SDK do Windows. Em seguida, ele testa se o estado retornado é PGF_INVISIBLE. Para mais informações, confira a seção Valor retornado da mensagem PGM_GETBUTTONSTATE.

Exemplo

O exemplo a seguir usa o método CPagerCtrl::IsButtonInvisible para determinar se os botões de rolagem esquerda e direita do controle de paginação estão visíveis.


void CCSplitButton_s2Dlg::OnXIsbuttoninvisible()
{
   BOOL bLeft = m_pager.IsButtonInvisible(PGB_TOPORLEFT);
   BOOL bRight = m_pager.IsButtonInvisible(PGB_BOTTOMORRIGHT);
   CString str;
   str.Format(_T("The left button is%s visible; the right button is%s visible."),
              (bLeft ? _T(" not") : _T("")),
              (bRight ? _T(" not") : _T("")));
   MessageBox(str);
}

CPagerCtrl::IsButtonNormal

Indica se o botão de rolagem especificado do controle de paginação atual está em estado normal.

BOOL IsButtonNormal(int iButton) const;

Parâmetros

iButton
[in] Indica o botão para o qual o estado é recuperado. Se o estilo de controle de paginação for PGS_HORZ, especifique PGB_TOPORLEFT para o botão esquerdo e PGB_BOTTOMORRIGHT para o botão direito. Se o estilo de controle de paginação for PGS_VERT, especifique PGB_TOPORLEFT para o botão superior e PGB_BOTTOMORRIGHT para o botão inferior. Para mais informações, confira Estilos de controle de paginação.

Valor de retorno

TRUE se o botão especificado estiver em estado normal; caso contrário, FALSE.

Comentários

Esse método envia a mensagem PGM_GETBUTTONSTATE, que é descrita no SDK do Windows. Em seguida, ele testa se o estado retornado é PGF_NORMAL. Para mais informações, confira a seção Valor retornado da mensagem PGM_GETBUTTONSTATE.

CPagerCtrl::RecalcSize

Faz com que o controle de paginação atual recalcule o tamanho da janela contida.

void RecalcSize();

Comentários

Esse método envia a mensagem PGM_RECALCSIZE, que é descrita no SDK do Windows. Assim, o controle de paginação envia a notificação PGN_CALCSIZE para obter as dimensões roláveis da janela contida.

Exemplo 1

O exemplo a seguir usa o método CPagerCtrl::RecalcSize para solicitar o controle de paginação atual para recalcular seu tamanho.

void CCSplitButton_s2Dlg::OnXRecalcsize()
{
   // If the child control changes size, call RecalcSize() to change
   // the size of the pager control accordingly.
   m_pager.RecalcSize();
   MessageBox(_T("The pager control size has been recalculated."));
}

Exemplo 2

O exemplo a seguir usa reflexão de mensagem para permitir que o controle de paginação recalcule o próprio tamanho em vez de exigir que a caixa de diálogo pai do controle execute o cálculo. O exemplo deriva a classe MyPagerCtrl da classe CPagerCtrl e usa um mapa de mensagens para associar a notificação PGN_CALCSIZE ao manipulador de notificação OnCalcsize. Neste exemplo, o manipulador de notificação define a largura e a altura do controle de paginação como valores fixos.

BEGIN_MESSAGE_MAP(CMyPagerCtrl, CPagerCtrl)
ON_NOTIFY_REFLECT(PGN_CALCSIZE, &CMyPagerCtrl::OnCalcSize)
END_MESSAGE_MAP()

// CMyPagerCtrl message handlers
void CMyPagerCtrl::OnCalcSize(NMHDR *code, LRESULT *param)
{
   // If the control contained in the pager control changes size, use this
   // handler to change the size of the pager control accordingly.

   LPNMPGCALCSIZE tmp = (LPNMPGCALCSIZE)code;
   *param = 0;
   tmp->iWidth = 500;
   tmp->iHeight = 50;
}

CPagerCtrl::SetBkColor

Define a cor da tela de fundo do controle de paginação atual.

COLORREF SetBkColor(COLORREF clrBk);

Parâmetros

clrBk
[in] Um valor COLORREF que contém a nova cor da tela de fundo do controle de paginação.

Valor de retorno

Um valor COLORREF que contém a cor da tela de fundo anterior do controle de paginação.

Comentários

Esse método envia a mensagem PGM_SETBKCOLOR, que é descrita no SDK do Windows.

Exemplo

O exemplo a seguir usa o método CPagerCtrl::SetBkColor para definir a cor da tela de fundo do controle de paginação como vermelho e o método CPagerCtrl::GetBkColor para confirmar se a alteração foi feita.

void CCSplitButton_s2Dlg::OnXColor()
{
   COLORREF originalColor;
   //  Set color to red.
   originalColor = m_pager.SetBkColor(RGB(255, 0, 0));
   if (m_pager.GetBkColor() != RGB(255, 0, 0))
   {
      MessageBox(_T("Control did not return RED as the previous color."));
   }
   // The following statement is one way to restore the color.
   // m_pager.SetBkColor( originalColor );
}

CPagerCtrl::SetBorder

Define o tamanho da borda do controle de paginação atual.

int SetBorder(int iBorder);

Parâmetros

iBorder
[in] O novo tamanho da borda, medido em pixels. Se o parâmetro iBorder for negativo, o tamanho da borda será definido como zero.

Valor de retorno

O tamanho da borda anterior, medido em pixels.

Comentários

Esse método envia a mensagem PGM_SETBORDER, que é descrita no SDK do Windows.

Exemplo

O exemplo a seguir cria um controle de paginação e usa o método CPagerCtrl::SetChild para associar um controle de botão muito longo ao controle de paginação. O exemplo usa o método CPagerCtrl::SetButtonSize para definir a altura do controle de paginação como 20 pixels e o método CPagerCtrl::SetBorder para definir a espessura da borda como 1 pixel.

// Initialize the dropdown menu of the splitbutton control.
m_splitButton.SetDropDownMenu(IDR_MENU1, 0);

// Create the pager control.
BOOL nRet;
CRect rect;
GetClientRect(&rect);
nRet = m_pager.Create(
    (WS_VISIBLE | WS_CHILD | PGS_HORZ),
    CRect(rect.Width() / 4, 5, (rect.Width() * 3) / 4, 55),
    this,
    IDC_PAGER1);

m_pager.GetClientRect(&rect);
nRet = m_button.Create(
    _T("This is a very, very long button. 012345678901234567890"),
    (WS_VISIBLE | WS_CHILD), // Do not use CCS_NORESIZE.
    CRect(0, 0, rect.Width(), 30),
    &m_pager, IDC_BUTTON1);

m_pager.SetChild(m_button.m_hWnd);
m_pager.SetButtonSize(20);
m_pager.SetBorder(1);

CPagerCtrl::SetButtonSize

Define o tamanho do botão do controle de paginação atual.

int SetButtonSize(int iButtonSize);

Parâmetros

iButtonSize
[in] O novo tamanho do botão, medido em pixels.

Valor de retorno

O tamanho do botão anterior, medido em pixels.

Comentários

Esse método envia a mensagem PGM_SETBUTTONSIZE, que é descrita no SDK do Windows.

Se o controle de paginação tiver o estilo PGS_HORZ, o tamanho do botão determinará a largura dos botões do pager e, se o controle de paginação tiver o estilo PGS_VERT, o tamanho do botão determinará a altura dos botões de paginação. O tamanho do botão padrão é de três quartos da largura da barra de rolagem e o tamanho mínimo do botão é de 12 pixels. Para mais informações, confira Estilos de controle de paginação.

Exemplo

O exemplo a seguir cria um controle de paginação e usa o método CPagerCtrl::SetChild para associar um controle de botão muito longo ao controle de paginação. O exemplo usa o método CPagerCtrl::SetButtonSize para definir a altura do controle de paginação como 20 pixels e o método CPagerCtrl::SetBorder para definir a espessura da borda como 1 pixel.

// Initialize the dropdown menu of the splitbutton control.
m_splitButton.SetDropDownMenu(IDR_MENU1, 0);

// Create the pager control.
BOOL nRet;
CRect rect;
GetClientRect(&rect);
nRet = m_pager.Create(
    (WS_VISIBLE | WS_CHILD | PGS_HORZ),
    CRect(rect.Width() / 4, 5, (rect.Width() * 3) / 4, 55),
    this,
    IDC_PAGER1);

m_pager.GetClientRect(&rect);
nRet = m_button.Create(
    _T("This is a very, very long button. 012345678901234567890"),
    (WS_VISIBLE | WS_CHILD), // Do not use CCS_NORESIZE.
    CRect(0, 0, rect.Width(), 30),
    &m_pager, IDC_BUTTON1);

m_pager.SetChild(m_button.m_hWnd);
m_pager.SetButtonSize(20);
m_pager.SetBorder(1);

CPagerCtrl::SetChild

Define a janela contida para o controle de paginação atual.

void SetChild(HWND hwndChild);

Parâmetros

hwndChild
[in] Manipule para a janela a ser contida.

Comentários

Esse método envia a mensagem PGM_SETCHILD, que é descrita no SDK do Windows.

Esse método não altera o pai da janela contida; ele atribui apenas um identificador de janela ao controle de paginação para rolagem. Na maioria dos casos, a janela contida será uma janela filho do controle de paginação.

Exemplo

O exemplo a seguir cria um controle de paginação e usa o método CPagerCtrl::SetChild para associar um controle de botão muito longo ao controle de paginação. O exemplo usa o método CPagerCtrl::SetButtonSize para definir a altura do controle de paginação como 20 pixels e o método CPagerCtrl::SetBorder para definir a espessura da borda como 1 pixel.

// Initialize the dropdown menu of the splitbutton control.
m_splitButton.SetDropDownMenu(IDR_MENU1, 0);

// Create the pager control.
BOOL nRet;
CRect rect;
GetClientRect(&rect);
nRet = m_pager.Create(
    (WS_VISIBLE | WS_CHILD | PGS_HORZ),
    CRect(rect.Width() / 4, 5, (rect.Width() * 3) / 4, 55),
    this,
    IDC_PAGER1);

m_pager.GetClientRect(&rect);
nRet = m_button.Create(
    _T("This is a very, very long button. 012345678901234567890"),
    (WS_VISIBLE | WS_CHILD), // Do not use CCS_NORESIZE.
    CRect(0, 0, rect.Width(), 30),
    &m_pager, IDC_BUTTON1);

m_pager.SetChild(m_button.m_hWnd);
m_pager.SetButtonSize(20);
m_pager.SetBorder(1);

CPagerCtrl::SetScrollPos

Define a posição de rolagem do controle de paginação atual.

void SetScrollPos(int iPos);

Parâmetros

iPos
[in] A nova posição de rolagem, medida em pixels.

Comentários

Esse método envia a mensagem PGM_SETPOS, que é descrita no SDK do Windows.

Confira também

Classe CPagerCtrl
Gráfico da hierarquia
Controles do Pager