Compartir a través de


Clase CPagerCtrl

La clase CPagerCtrl ajusta el control de paginación de Windows, que puede desplazar en la vista una ventana contenida que no cabe en la ventana contenedora.

Sintaxis

class CPagerCtrl : public CWnd

Miembros

Constructores públicos

Nombre Descripción
CPagerCtrl::CPagerCtrl Construye un objeto CPagerCtrl.

Métodos públicos

Nombre Descripción
CPagerCtrl::Create Crea un control de paginación con los estilos especificados y lo asocia al objeto CPagerCtrl actual.
CPagerCtrl::CreateEx Crea un control de paginación con los estilos extendidos especificados y lo asocia al objeto CPagerCtrl actual.
CPagerCtrl::ForwardMouse Habilita o deshabilita el reenvío de mensajes WM_MOUSEMOVE a la ventana contenida en el control de paginación actual.
CPagerCtrl::GetBkColor Recupera el color de fondo del control de paginación actual.
CPagerCtrl::GetBorder Recupera el tamaño del borde del control de paginación actual.
CPagerCtrl::GetButtonSize Recupera el tamaño del botón del control de paginación actual.
CPagerCtrl::GetButtonState Recupera el estado del botón especificado en el control de paginación actual.
CPagerCtrl::GetDropTarget Recupera la interfaz IDropTarget interfaz para el control de paginación actual.
CPagerCtrl::GetScrollPos Recupera la posición de desplazamiento del control de paginación actual.
CPagerCtrl::IsButtonDepressed Indica si el estado del botón especificado del control de paginación actual es pressed.
CPagerCtrl::IsButtonGrayed Indica si el estado del botón especificado del control de paginación actual es grayed.
CPagerCtrl::IsButtonHot Indica si el estado del botón especificado del control de paginación actual es hot.
CPagerCtrl::IsButtonInvisible Indica si el estado del botón especificado del control de paginación actual es invisible.
CPagerCtrl::IsButtonNormal Indica si el estado del botón especificado del control de paginación actual es normal.
CPagerCtrl::RecalcSize Hace que el control de paginación actual vuelva a calcular el tamaño de la ventana independiente.
CPagerCtrl::SetBkColor Establece el color de fondo del control de paginación actual.
CPagerCtrl::SetBorder Establece el tamaño del borde del control de paginación actual.
CPagerCtrl::SetButtonSize Establece el tamaño del botón del control de paginación actual.
CPagerCtrl::SetChild Establece la ventana independiente para el control de paginación actual.
CPagerCtrl::SetScrollPos Establece la posición de desplazamiento del control de paginación actual.

Comentarios

Un control de paginación es una ventana que contiene otra ventana lineal y mayor que la ventana contenedora, y permite desplazar la ventana independiente a la vista. El control de paginación muestra dos botones de desplazamiento que desaparecen automáticamente cuando la ventana independiente se desplaza hasta el final y que vuelven a aparecer en caso contrario. Puede crear un control de paginación que se desplace horizontal o verticalmente.

Por ejemplo, si la aplicación tiene una barra de herramientas que no es lo suficientemente ancha como para mostrar todos sus elementos, puede asignar la barra de herramientas a un control de paginación y los usuarios podrán desplazarse por la barra de herramientas a la izquierda o a la derecha para acceder a todos los elementos. El control de paginación se introdujo en la versión 4.0 (versión 4.71 de commctrl.dll) de Microsoft Internet Explorer.

La clase CPagerCtrl deriva de la clase CWnd. Para más información y una ilustración de un control de paginación, consulte Controles de paginación.

Jerarquía de herencia

CObject

CCmdTarget

CWnd

CPagerCtrl

Requisitos

Encabezado: afxcmn.h

CPagerCtrl::CPagerCtrl

Construye un objeto CPagerCtrl.

CPagerCtrl();

Comentarios

Use el método CPagerCtrl::Create o CPagerCtrl::CreateEx para crear un control de paginación y asociarlo al objeto CPagerCtrl.

CPagerCtrl::Create

Crea un control de paginación con los estilos especificados y lo asocia al objeto CPagerCtrl actual.

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

Parámetros

dwStyle
[in] Combinación (OR) bit a bit de estilos de ventana y de estilos de control de paginación que se aplicarán al control.

rect
[in] Referencia a una estructura RECT que contiene la posición y el tamaño del control en coordenadas cliente.

pParentWnd
[in] Puntero a un objeto CWnd que es la ventana primaria del control. Este parámetro no puede ser NULL.

Nid
[in] Identificador del control.

Valor devuelto

TRUE si este método se ejecuta correctamente; de lo contrario, FALSE.

Comentarios

Para crear un control de paginación, declare una variable CPagerCtrl y, a continuación, llame al método CPagerCtrl::Create o CPagerCtrl::CreateEx en esa variable.

Ejemplo

En el ejemplo siguiente, se crea un control de paginación y, a continuación, se usa el método CPagerCtrl::SetChild para asociar un control de botón muy largo al control de paginación. A continuación, en el ejemplo se usa el método CPagerCtrl::SetButtonSize para establecer el alto del control de paginación en 20 píxeles y el método CPagerCtrl::SetBorder para establecer el grosor del borde en 1 píxel.

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

Crea un control de paginación con los estilos extendidos especificados y lo asocia al objeto CPagerCtrl actual.

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

Parámetros

dwExStyle
[in] Combinación bit a bit de estilos extendidos que se aplicarán al control. Para obtener más información, consulte el parámetro dwExStyle de la función CreateWindowEx.

dwStyle
[in] Combinación (OR) bit a bit de estilos de ventana y de estilos de control de paginación que se aplicarán al control.

rect
[in] Referencia a una estructura RECT que contiene la posición y el tamaño del control en coordenadas cliente.

pParentWnd
[in] Puntero a un objeto CWnd que es la ventana primaria del control. Este parámetro no puede ser NULL.

Nid
[in] Identificador del control.

Valor devuelto

TRUE si este método se ejecuta correctamente; de lo contrario, FALSE.

Comentarios

Para crear un control de paginación, declare una variable CPagerCtrl y, a continuación, llame al método CPagerCtrl::Create o CPagerCtrl::CreateEx en esa variable.

CPagerCtrl::ForwardMouse

Habilita o deshabilita el reenvío de mensajes WM_MOUSEMOVE a la ventana contenida en el control de paginación actual.

void ForwardMouse(BOOL bForward);

Parámetros

bForward
[in] TRUE para reenviar mensajes del mouse o FALSE para no hacerlo.

Comentarios

Al usar este método, se envía el mensaje PGM_FORWARDMOUSE, que se describe en Windows SDK.

CPagerCtrl::GetBorder

Recupera el tamaño del borde del control de paginación actual.

int GetBorder() const;

Valor devuelto

Tamaño del borde actual, medido en píxeles.

Comentarios

Al usar este método, se envía el mensaje PGM_GETBORDER, que se describe en Windows SDK.

Ejemplo

En el ejemplo siguiente, se usa el método CPagerCtrl::GetBorder para recuperar el grosor del borde del control de paginación.

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 el color de fondo del control de paginación actual.

COLORREF GetBkColor() const;

Valor devuelto

Valor COLORREF que contiene el color de fondo actual del control de paginación.

Comentarios

Al usar este método, se envía el mensaje PGM_GETBKCOLOR, que se describe en Windows SDK.

Ejemplo

En el ejemplo siguiente, se usa el método CPagerCtrl::SetBkColor para establecer el color de fondo del control de paginación en rojo y el método CPagerCtrl::GetBkColor para confirmar que se hizo el cambio.

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 el tamaño del botón del control de paginación actual.

int GetButtonSize() const;

Valor devuelto

Tamaño del botón actual, medido en píxeles.

Comentarios

Al usar este método, se envía el mensaje PGM_GETBUTTONSIZE, que se describe en Windows SDK.

Si el control de paginación tiene el estilo PGS_HORZ, el tamaño del botón determina el ancho de los botones de paginación y, si el control de paginación tiene el estilo PGS_VERT, el tamaño del botón determina el alto de los botones de paginación. Para más información, consulte Estilos del control de paginación.

CPagerCtrl::GetButtonState

Recupera el estado del botón de desplazamiento especificado en el control de paginación actual.

DWORD GetButtonState(int iButton) const;

Parámetros

iButton
[in] Indica el botón para el que se recupera el estado. Si el estilo del control de paginación es PGS_HORZ, especifique PGB_TOPORLEFT para el botón izquierdo y PGB_BOTTOMORRIGHT para el botón derecho. Si el estilo del control de paginación es PGS_VERT, especifique PGB_TOPORLEFT para el botón superior y PGB_BOTTOMORRIGHT para el botón inferior. Para más información, consulte Estilos del control de paginación.

Valor devuelto

Estado del botón que el parámetro iButton especifica. El estado es PGF_INVISIBLE, PGF_NORMAL, PGF_GRAYED, PGF_DEPRESSED o PGF_HOT. Para más información, consulte la sección Valor devuelto del mensaje PGM_GETBUTTONSTATE.

Comentarios

Al usar este método, se usa el mensaje PGM_GETBUTTONSTATE, que se escribe en Windows SDK.

CPagerCtrl::GetDropTarget

Recupera la interfaz IDropTarget interfaz para el control de paginación actual.

IDropTarget* GetDropTarget() const;

Valor devuelto

Puntero a la interfaz IDropTarget para el control de paginación actual.

Comentarios

IDropTarget es una de las interfaces que implementa para admitir operaciones de arrastrar y colocar en la aplicación.

Al usar este método, se envía el mensaje PGM_GETDROPTARGET, que se describe en Windows SDK. El autor de llamada de este método es responsable de llamar al miembro Release de la interfaz IDropTarget cuando ya no se necesita la interfaz.

CPagerCtrl::GetScrollPos

Recupera la posición de desplazamiento del control de paginación actual.

int GetScrollPos() const;

Valor devuelto

Posición de desplazamiento actual, medida en píxeles.

Comentarios

Al usar este método, se envía el mensaje PGM_GETPOS, que se describe en Windows SDK.

Ejemplo

En el ejemplo siguiente, se usa el método CPagerCtrl::GetScrollPos para recuperar la posición de desplazamiento actual del control de paginación. Si el control de paginación todavía no se desplaza a cero, la posición situada más a la izquierda, en el ejemplo se usa el método CPagerCtrl::SetScrollPos para establecer la posición de desplazamiento en cero.

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 si el estado del botón de desplazamiento especificado del control de paginación actual es presionado.

BOOL IsButtonDepressed(int iButton) const;

Parámetros

iButton
[in] Indica el botón para el que se recupera el estado. Si el estilo del control de paginación es PGS_HORZ, especifique PGB_TOPORLEFT para el botón izquierdo y PGB_BOTTOMORRIGHT para el botón derecho. Si el estilo del control de paginación es PGS_VERT, especifique PGB_TOPORLEFT para el botón superior y PGB_BOTTOMORRIGHT para el botón inferior. Para más información, consulte Estilos del control de paginación.

Valor devuelto

TRUE si el estilo del botón especificado es presionado; de lo contrario, FALSE.

Comentarios

Al usar este método, se usa el mensaje PGM_GETBUTTONSTATE, que se escribe en Windows SDK. A continuación, comprueba si el estado devuelto es PGF_DEPRESSED. Para más información, consulte la sección Valor devuelto del mensaje PGM_GETBUTTONSTATE.

CPagerCtrl::IsButtonGrayed

Indica si el estado del botón de desplazamiento especificado del control de paginación actual es atenuado.

BOOL IsButtonGrayed(int iButton) const;

Parámetros

iButton
[in] Indica el botón para el que se recupera el estado. Si el estilo del control de paginación es PGS_HORZ, especifique PGB_TOPORLEFT para el botón izquierdo y PGB_BOTTOMORRIGHT para el botón derecho. Si el estilo del control de paginación es PGS_VERT, especifique PGB_TOPORLEFT para el botón superior y PGB_BOTTOMORRIGHT para el botón inferior. Para más información, consulte Estilos del control de paginación.

Valor devuelto

TRUE si el estado del botón especificado es atenuado; de lo contrario, FALSE.

Comentarios

Al usar este método, se usa el mensaje PGM_GETBUTTONSTATE, que se escribe en Windows SDK. A continuación, comprueba si el estado devuelto es PGF_GRAYED. Para más información, consulte la sección Valor devuelto del mensaje PGM_GETBUTTONSTATE.

CPagerCtrl::IsButtonHot

Indica si el estado del botón de desplazamiento especificado del control de paginación actual es activo.

BOOL IsButtonHot(int iButton) const;

Parámetros

iButton
[in] Indica el botón para el que se recupera el estado. Si el estilo del control de paginación es PGS_HORZ, especifique PGB_TOPORLEFT para el botón izquierdo y PGB_BOTTOMORRIGHT para el botón derecho. Si el estilo del control de paginación es PGS_VERT, especifique PGB_TOPORLEFT para el botón superior y PGB_BOTTOMORRIGHT para el botón inferior. Para más información, consulte Estilos del control de paginación.

Valor devuelto

TRUE si el estado del botón especificado es activo; de lo contrario, FALSE.

Comentarios

Al usar este método, se usa el mensaje PGM_GETBUTTONSTATE, que se escribe en Windows SDK. A continuación, comprueba si el estado devuelto es PGF_HOT. Para más información, consulte la sección Valor devuelto del mensaje PGM_GETBUTTONSTATE.

CPagerCtrl::IsButtonInvisible

Indica si el estado del botón de desplazamiento especificado del control de paginación es invisible.

BOOL IsButtonInvisible(int iButton) const;

Parámetros

iButton
[in] Indica el botón para el que se recupera el estado. Si el estilo del control de paginación es PGS_HORZ, especifique PGB_TOPORLEFT para el botón izquierdo y PGB_BOTTOMORRIGHT para el botón derecho. Si el estilo del control de paginación es PGS_VERT, especifique PGB_TOPORLEFT para el botón superior y PGB_BOTTOMORRIGHT para el botón inferior. Para más información, consulte Estilos del control de paginación.

Valor devuelto

TRUE si el estado del botón especificado es invisible; de lo contrario, FALSE.

Comentarios

Windows hace que el botón de desplazamiento en una dirección determinada sea invisible cuando la ventana independiente se desplace a la posición más lejana, porque al hacer clic en el botón no se puede ver más de la ventana independiente.

Al usar este método, se usa el mensaje PGM_GETBUTTONSTATE, que se escribe en Windows SDK. A continuación, comprueba si el estado devuelto es PGF_INVISIBLE. Para más información, consulte la sección Valor devuelto del mensaje PGM_GETBUTTONSTATE.

Ejemplo

En el ejemplo siguiente, se usa el método CPagerCtrl::IsButtonInvisible para determinar si los botones de desplazamiento izquierdo y derecho del control de paginación están visibles.


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 si el estado del botón de desplazamiento especificado del control de paginación actual es normal.

BOOL IsButtonNormal(int iButton) const;

Parámetros

iButton
[in] Indica el botón para el que se recupera el estado. Si el estilo del control de paginación es PGS_HORZ, especifique PGB_TOPORLEFT para el botón izquierdo y PGB_BOTTOMORRIGHT para el botón derecho. Si el estilo del control de paginación es PGS_VERT, especifique PGB_TOPORLEFT para el botón superior y PGB_BOTTOMORRIGHT para el botón inferior. Para más información, consulte Estilos del control de paginación.

Valor devuelto

TRUE si el estado del botón especificado es normal; de lo contrario, FALSE.

Comentarios

Al usar este método, se usa el mensaje PGM_GETBUTTONSTATE, que se escribe en Windows SDK. A continuación, comprueba si el estado devuelto es PGF_NORMAL. Para más información, consulte la sección Valor devuelto del mensaje PGM_GETBUTTONSTATE.

CPagerCtrl::RecalcSize

Hace que el control de paginación actual vuelva a calcular el tamaño de la ventana independiente.

void RecalcSize();

Comentarios

Al usar este método, se envía el mensaje PGM_RECALCSIZE, que se describe en Windows SDK. Por lo tanto, el control de paginación envía la notificación PGN_CALCSIZE para obtener las dimensiones desplazables de la ventana independiente.

Ejemplo 1

En el ejemplo siguiente, se usa el método CPagerCtrl::RecalcSize para solicitar que se vuelva a calcular el tamaño del control de paginación actual.

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."));
}

Ejemplo 2

En el ejemplo siguiente, se usa la reflexión de mensajes para permitir que el control de paginación vuelva a calcular su propio tamaño en lugar de requerir que el diálogo primario del control haga el cálculo. El ejemplo deriva de la clase MyPagerCtrl de la clase CPagerCtrl y, luego, usa una asignación de mensajes para asociar la notificación PGN_CALCSIZE con el controlador de notificaciones OnCalcsize. En este ejemplo, el controlador de notificaciones establece el ancho y alto del control de paginación en valores fijos.

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

Establece el color de fondo del control de paginación actual.

COLORREF SetBkColor(COLORREF clrBk);

Parámetros

clrBk
[in] Valor COLORREF que contiene el color de fondo nuevo del control de paginación.

Valor devuelto

Valor COLORREF que contiene el color de fondo anterior del control de paginación.

Comentarios

Al usar este método, se envía el mensaje PGM_SETBKCOLOR, que se describe en Windows SDK.

Ejemplo

En el ejemplo siguiente, se usa el método CPagerCtrl::SetBkColor para establecer el color de fondo del control de paginación en rojo y el método CPagerCtrl::GetBkColor para confirmar que se hizo el cambio.

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

Establece el tamaño del borde del control de paginación actual.

int SetBorder(int iBorder);

Parámetros

iBorder
[in] Tamaño del borde nuevo, medido en píxeles. Si el parámetro iBorder es negativo, el tamaño del borde se establece en cero.

Valor devuelto

Tamaño del borde anterior, medido en píxeles.

Comentarios

Al usar este método, se envía el mensaje PGM_SETBORDER, que se describe en Windows SDK.

Ejemplo

En el ejemplo siguiente, se crea un control de paginación y, a continuación, se usa el método CPagerCtrl::SetChild para asociar un control de botón muy largo al control de paginación. A continuación, en el ejemplo se usa el método CPagerCtrl::SetButtonSize para establecer el alto del control de paginación en 20 píxeles y el método CPagerCtrl::SetBorder para establecer el grosor del borde en 1 píxel.

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

Establece el tamaño del botón del control de paginación actual.

int SetButtonSize(int iButtonSize);

Parámetros

iButtonSize
[in] Tamaño del botón nuevo, medido en píxeles.

Valor devuelto

Tamaño del botón anterior, medido en píxeles.

Comentarios

Al usar este método, se envía el mensaje PGM_SETBUTTONSIZE, que se describe en Windows SDK.

Si el control de paginación tiene el estilo PGS_HORZ, el tamaño del botón determina el ancho de los botones de paginación y, si el control de paginación tiene el estilo PGS_VERT, el tamaño del botón determina el alto de los botones de paginación. El tamaño del botón predeterminado es tres cuartos del ancho de la barra de desplazamiento y el tamaño mínimo del botón es de 12 píxeles. Para más información, consulte Estilos del control de paginación.

Ejemplo

En el ejemplo siguiente, se crea un control de paginación y, a continuación, se usa el método CPagerCtrl::SetChild para asociar un control de botón muy largo al control de paginación. A continuación, en el ejemplo se usa el método CPagerCtrl::SetButtonSize para establecer el alto del control de paginación en 20 píxeles y el método CPagerCtrl::SetBorder para establecer el grosor del borde en 1 píxel.

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

Establece la ventana independiente para el control de paginación actual.

void SetChild(HWND hwndChild);

Parámetros

hwndChild
[in] Controlador de la ventana que se va a contener.

Comentarios

Al usar este método, se envía el mensaje PGM_SETCHILD, que se describe en Windows SDK.

Este método no cambia el elemento primario de la ventana independiente; solo asigna un controlador de ventana al control de paginación para desplazamiento. En la mayoría de los casos, la ventana independiente será una ventana secundaria del control de paginación.

Ejemplo

En el ejemplo siguiente, se crea un control de paginación y, a continuación, se usa el método CPagerCtrl::SetChild para asociar un control de botón muy largo al control de paginación. A continuación, en el ejemplo se usa el método CPagerCtrl::SetButtonSize para establecer el alto del control de paginación en 20 píxeles y el método CPagerCtrl::SetBorder para establecer el grosor del borde en 1 píxel.

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

Establece la posición de desplazamiento del control de paginación actual.

void SetScrollPos(int iPos);

Parámetros

iPos
[in] Posición de desplazamiento nueva, medida en píxeles.

Comentarios

Al usar este método, se envía el mensaje PGM_SETPOS, que se describe en Windows SDK.

Consulte también

CPagerCtrl (clase)
Gráfico de jerarquías
Controles de paginación