Compartir a través de


CLinkCtrl (clase)

Proporciona la funcionalidad del control SysLink común de Windows.

Sintaxis

class CLinkCtrl : public CWnd

Miembros

Constructores públicos

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

Métodos públicos

Nombre Descripción
CLinkCtrl::Create Crea un control de vínculo y lo asocia a un objeto CLinkCtrl.
CLinkCtrl::CreateEx Crea un control de vínculo con estilos extendidos y lo asocia a un objeto CLinkCtrl.
CLinkCtrl::GetIdealHeight Recupera el alto idóneo del control de vínculo.
CLinkCtrl::GetIdealSize Calcula el alto preferido del texto del vínculo para el control de vínculo actual, según el ancho especificado del vínculo.
CLinkCtrl::GetItem Recupera los estados y atributos de un elemento de control de vínculo.
CLinkCtrl::GetItemID Recupera el identificador de un elemento de control de vínculo.
CLinkCtrl::GetItemState Recupera el estado del elemento de control de vínculo.
CLinkCtrl::GetItemUrl Recupera la dirección URL representada por el elemento de control de vínculo.
CLinkCtrl::HitTest Determina si el usuario hizo clic en el vínculo especificado.
CLinkCtrl::SetItem Establece los estados y atributos de un elemento de control de vínculo.
CLinkCtrl::SetItemID Establece el identificador de un elemento de control de vínculo.
CLinkCtrl::SetItemState Establece el estado del elemento de control de vínculo.
CLinkCtrl::SetItemUrl Establece la dirección URL representada por el elemento de control de vínculo.

Comentarios

Un "control de vínculo" proporciona una manera cómoda de insertar vínculos de hipertexto en una ventana. El control real es una ventana que representa el texto marcado e inicia las aplicaciones adecuadas cuando el usuario hace clic en un vínculo insertado. Se admiten varios vínculos dentro de un control y se puede acceder a ellos mediante un índice de base cero.

Este control (y, por tanto, la clase CLinkCtrl) solo está disponible para los programas que se ejecutan en Windows XP y versiones posteriores.

Para más información, consulte Control SysLink en Windows SDK.

Jerarquía de herencia

CObject

CCmdTarget

CWnd

CLinkCtrl

Requisitos

Encabezado: afxcmn.h

CLinkCtrl::CLinkCtrl

Construye un objeto CLinkCtrl.

CLinkCtrl();

CLinkCtrl::Create

Crea un control de vínculo y lo asocia a un objeto CLinkCtrl.

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

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

Parámetros

lpszLinkMarkup
Puntero a una cadena terminada en cero que contiene el texto marcado para mostrar. Para más información, consulte la sección "Marcado y acceso a vínculos" en el tema Introducción a los controles SysLink.

dwStyle
Especifica el estilo del control de vínculo. Aplique cualquier combinación de estilos de control. Consulte Estilos de control comunes en Windows SDK para más información.

rect
Especifica el tamaño y la posición del control. Puede ser un objeto CRect o una estructura RECT.

pParentWnd
Especifica la ventana principal del control de vínculo. No debe ser NULL.

Nid
Especifica el identificador del control de vínculo.

Valor devuelto

Es TRUE si la inicialización se realizó correctamente; de lo contrario, es FALSE.

Comentarios

El objeto CLinkCtrl se construye en dos pasos. En primer lugar, llame al constructor y, luego, a Create, que crea el control de vínculo y lo asocia al objeto CLinkCtrl. Si quiere usar estilos extendidos de Windows con el control, llame a CLinkCtrl::CreateEx en lugar de Create.

La segunda forma del método Create está en desuso. Use el primer formulario que especifica el parámetro lpszLinkMarkup.

Ejemplo

En el primer ejemplo de código se definen dos variables, denominadas m_Link1 y m_Link2, que se usan para acceder a dos controles de vínculo.

afx_msg void OnNMClickSyslink1(NMHDR *pNMHDR, LRESULT *pResult);
afx_msg void OnNMClickSyslink2(NMHDR *pNMHDR, LRESULT *pResult);
// Link variable associated with resource editor CLinkCtrl control.
CLinkCtrl m_Link1;
// Link variable associated with programmatic CLinkCtrl control.
CLinkCtrl m_Link2;

En el ejemplo de código siguiente se crea un control de vínculo basado en la ubicación de otro control de vínculo. El cargador de recursos crea el primer control de vínculo cuando se inicia la aplicación. Cuando la aplicación entra en el método OnInitDialog, se crea el segundo control de vínculo con respecto a la posición del primer control de vínculo. A continuación, se cambia el tamaño del segundo control de vínculo para que quepa el texto que se muestra.

CRect rect1, rect2;
int height = 0;
SIZE sz = {0};
PTCHAR url =
    _T("Link 2)  ")
    _T("<A HREF=\"https://visualstudio.microsoft.com\">")
    _T("Microsoft VC++ Home")
    _T("</A>");
m_Link1.GetWindowRect(&rect1);
m_Link2.Create(url,
               (WS_VISIBLE | WS_TABSTOP | WS_CHILD | WS_BORDER),
               CRect(
                   rect1.left, rect1.bottom + rect1.Height(),
                   rect1.right, rect1.bottom + (2 * rect1.Height())),
               this,
               IDC_SYSLINK2);
m_Link2.GetClientRect(&rect2);
// The return value of GetIdealSize() is the same as sz.cy
height = m_Link2.GetIdealSize(
    rect2.Width(), &sz);
if ((sz.cx != 0) && (sz.cy != 0))
{
   int rc = m_Link2.SetWindowPos(
       this,
       0, 0, sz.cx, sz.cy,
       (SWP_NOMOVE | SWP_NOZORDER | SWP_NOREPOSITION | SWP_NOACTIVATE));
}

CLinkCtrl::CreateEx

Crea un control de vínculo con estilos extendidos y lo asocia a un objeto CLinkCtrl.

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

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

Parámetros

lpszLinkMarkup
Puntero a una cadena terminada en cero que contiene el texto marcado para mostrar. Para más información, consulte la sección "Marcado y acceso a vínculos" en el tema Introducción a los controles SysLink.

dwExStyle
Especifica el estilo extendido de este control de vínculo. Para ver una lista de estilos extendidos de Windows, consulte el parámetro dwExStyle para CreateWindowEx en Windows SDK.

dwStyle
Especifica el estilo del control de vínculo. Aplique cualquier combinación de estilos de control. Para obtener más información, vea Estilos de control comunes en Windows SDK.

rect
Especifica el tamaño y la posición del control. Puede ser un objeto CRect o una estructura RECT.

pParentWnd
Especifica la ventana principal del control de vínculo. No debe ser NULL.

Nid
Especifica el identificador del control de vínculo.

Valor devuelto

Es TRUE si la inicialización se realizó correctamente; de lo contrario, es FALSE.

Comentarios

Use CreateEx en lugar de Crear para aplicar constantes extendidas de estilo de Windows.

La segunda forma del método CreateEx está en desuso. Use el primer formulario que especifica el parámetro lpszLinkMarkup.

CLinkCtrl::GetIdealHeight

Recupera el alto idóneo del control de vínculo.

int GetIdealHeight() const;

Valor devuelto

El alto idóneo del control, en píxeles.

Comentarios

Esta función miembro implementa el comportamiento del mensaje LM_GETIDEALHEIGHT de Win32, tal y como se describe en Windows SDK.

CLinkCtrl::GetIdealSize

Calcula el alto preferido del texto del vínculo para el control de vínculo actual, según el ancho especificado del vínculo.

int GetIdealSize(
    int cxMaxWidth,
    SIZE* pSize) const;

Parámetros

cxMaxWidth
[in] Ancho máximo del vínculo, en píxeles.

pSize
[out] Puntero a una estructura SIZE de Windows. Cuando este método devuelve resultados, el miembro cy de la estructura SIZE contiene el alto idóneo del texto del vínculo para el ancho del texto del vínculo especificado por cxMaxWidth. El miembro cx de la estructura contiene el ancho de texto del vínculo que realmente se necesita.

Valor devuelto

Alto preferido del texto del vínculo, en píxeles. El valor devuelto es el mismo que el valor del miembro cy de la estructura SIZE.

Comentarios

Para ver un ejemplo del método GetIdealSize, consulte el ejemplo en CLinkCtrl::Create.

Este método envía el mensaje LM_GETIDEALSIZE, que se describe en Windows SDK.

CLinkCtrl::GetItem

Recupera los estados y atributos de un elemento de control de vínculo.

BOOL GetItem(PLITEM pItem) const;

Parámetros

pItem
Puntero a una estructura LITEM para recibir información de elementos.

Valor devuelto

Devuelve TRUE si la operación se realiza correctamente; de lo contrario, devuelve FALSE.

Comentarios

Esta función miembro implementa el comportamiento del mensaje M_GETITEM de Win32, tal y como se describe en Windows SDK.

CLinkCtrl::GetItemID

Recupera el identificador de un elemento de control de vínculo.

BOOL GetItemID(
    int iLink,
    CString& strID) const;

BOOL GetItemID(
    int iLink,
    LPWSTR szID,
    UINT cchID) const;

Parámetros

iLink
Índice de un elemento de control de vínculo.

strID
Objeto CStringT que contiene el identificador del elemento especificado.

szID
Cadena terminada en NULL que contiene el identificador del elemento especificado.

cchID
[in] Tamaño, en caracteres, del búfer de szID.

Valor devuelto

Devuelve TRUE si la operación se realiza correctamente; de lo contrario, devuelve FALSE.

Nota:

Esta función también devuelve FALSE si el búfer de szID o strID es menor que MAX_LINKID_TEXT.

Comentarios

Recupera el identificador de un elemento de control de vínculo específico. Para más información, consulte el mensaje LM_GETITEM de Win32 en Windows SDK.

CLinkCtrl::GetItemState

Recupera el estado del elemento de control de vínculo.

BOOL GetItemState(
    int iLink,
    UINT* pnState,
    UINT stateMask = LIS_FOCUSED | LIS_ENABLED | LIS_VISITED) const;

Parámetros

iLink
Índice de un elemento de control de vínculo.

pnState
Valor del elemento de estado especificado.

stateMask
Combinación de marcas que describen qué elemento de estado se va a obtener. Para ver una lista de valores, consulte la descripción del miembro state en la estructura LITEM. Los elementos permitidos son idénticos a los permitidos en state.

Valor devuelto

Devuelve TRUE si la operación se realiza correctamente; de lo contrario, devuelve FALSE.

Comentarios

Recupera el valor del elemento de estado especificado de un elemento de control de vínculo específico. Para más información, consulte el mensaje LM_GETITEM de Win32 en Windows SDK.

CLinkCtrl::GetItemUrl

Recupera la dirección URL representada por el elemento de control de vínculo.

BOOL GetItemUrl(
    int iLink,
    CString& strUrl) const;

BOOL GetItemUrl(
    int iLink,
    LPWSTR szUrl,
    UINT cchUrl) const;

Parámetros

iLink
Índice de un elemento de control de vínculo.

strUrl
Objeto CStringT que contiene la dirección URL representada por el elemento especificado

szUrl
Cadena terminada en NULL que contiene la dirección URL representada por el elemento especificado.

cchUrl
[in] Tamaño, en caracteres, del búfer de szURL.

Valor devuelto

Devuelve TRUE si la operación se realiza correctamente; de lo contrario, devuelve FALSE.

Nota:

Esta función también devuelve FALSE si el búfer de szUrl o strUrl es menor que MAX_LINKID_TEXT.

Comentarios

Recupera la dirección URL representada por el elemento de control de vínculo especificado. Para más información, consulte el mensaje LM_GETITEM de Win32 en Windows SDK.

CLinkCtrl::HitTest

Determina si el usuario hizo clic en el vínculo especificado.

BOOL HitTest(PLHITTESTINFO phti) const;

Parámetros

phti
Puntero a una estructura LHITTESTINFO que contiene información sobre el vínculo en el que hizo clic el usuario.

Valor devuelto

Devuelve TRUE si la operación se realiza correctamente; de lo contrario, devuelve FALSE.

Comentarios

Esta función miembro implementa el comportamiento del mensaje LM_HITTEST de Win32, tal y como se describe en Windows SDK.

CLinkCtrl::SetItem

Establece los estados y atributos de un elemento de control de vínculo.

BOOL SetItem(PLITEM pItem);

Parámetros

pItem
Puntero a una estructura LITEM que contiene la información que se va a establecer.

Valor devuelto

Devuelve TRUE si la operación se realiza correctamente; de lo contrario, devuelve FALSE.

Comentarios

Esta función miembro implementa el comportamiento del mensaje LM_GETITEM de Win32, tal y como se describe en Windows SDK.

CLinkCtrl::SetItemID

Recupera el identificador de un elemento de control de vínculo.

BOOL SetItemID(
    int iLink,
    LPCWSTR szID);

Parámetros

iLink
Índice de un elemento de control de vínculo.

szID
Cadena terminada en NULL que contiene el identificador del elemento especificado.

Valor devuelto

Devuelve TRUE si la operación se realiza correctamente; de lo contrario, devuelve FALSE.

Comentarios

Establece el identificador de un elemento de control de vínculo específico. Para más información, consulte el mensaje LM_SETITEM de Win32 en Windows SDK.

CLinkCtrl::SetItemState

Recupera el estado del elemento de control de vínculo.

BOOL SetItemState(
    int iLink,
    UINT state,
    UINT stateMask = LIS_FOCUSED | LIS_ENABLED | LIS_VISITED);

Parámetros

iLink
Índice de un elemento de control de vínculo.

pnState
Valor del elemento de estado especificado que se va a establecer.

stateMask
Combinación de marcas que describen el elemento de estado que se establece. Para ver una lista de valores, consulte la descripción del miembro state en la estructura LITEM. Los elementos permitidos son idénticos a los permitidos en state.

Valor devuelto

Devuelve TRUE si la operación se realiza correctamente; de lo contrario, devuelve FALSE.

Comentarios

Establece el valor del elemento de estado especificado de un elemento de control de vínculo específico. Para más información, consulte el mensaje LM_SETITEM de Win32 en Windows SDK.

CLinkCtrl::SetItemUrl

Establece la dirección URL representada por el elemento de control de vínculo.

BOOL SetItemUrl(
    int iLink,
    LPCWSTR szUrl);

Parámetros

iLink
Índice de un elemento de control de vínculo.

szUrl
Cadena terminada en NULL que contiene la dirección URL representada por el elemento especificado.

Valor devuelto

Devuelve TRUE si la operación se realiza correctamente; de lo contrario, devuelve FALSE.

Comentarios

Establece la dirección URL representada por el elemento de control de vínculo especificado. Para más información, consulte el mensaje LM_SETITEM de Win32 en Windows SDK.

Consulte también

Gráfico de jerarquías
CWnd (clase)