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
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.