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