Partilhar via


Classe CLinkCtrl

Observação

A biblioteca Microsoft Foundation Classes (MFC) continua a ser suportada. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.

Fornece a funcionalidade do controlo comum SysLink do Windows.

Sintaxe

class CLinkCtrl : public CWnd

Membros

Construtores Públicos

Nome Description
CLinkCtrl::CLinkCtrl Constrói um CLinkCtrl objeto.

Métodos Públicos

Nome Description
CLinkCtrl::Create Cria um controlo de ligação e anexa-o a um CLinkCtrl objeto.
CLinkCtrl::CreateEx Cria um controlo de ligação com estilos estendidos e anexa-o a um CLinkCtrl objeto.
CLinkCtrl::GetIdealHeight Recupera a altura ideal do controlo da ligação.
CLinkCtrl::GetIdealSize Calcula a altura preferida do texto da ligação para o controlo atual da ligação, dependendo da largura especificada da ligação.
CLinkCtrl::GetItem Recupera os estados e atributos de um item de controlo de ligação.
CLinkCtrl::GetItemID Recupera o ID de um item de controlo de ligação.
CLinkCtrl::GetItemState Recupera o estado do item de controlo da ligação.
CLinkCtrl::GetItemUrl Recupera a URL representada pelo item de controlo do link.
CLinkCtrl::HitTest Determina se o utilizador clicou no link especificado.
CLinkCtrl::SetItem Define os estados e atributos de um item de controlo de ligação.
CLinkCtrl::SetItemID Define o ID de um item de controlo de ligação.
CLinkCtrl::SetItemState Define o estado do item de controlo da ligação.
CLinkCtrl::SetItemUrl Define a URL representada pelo item de controlo do link.

Observações

Um "controlo de ligação" oferece uma forma conveniente de incorporar ligações de hipertexto numa janela. O controlo propriamente dito é uma janela que renderiza texto marcado e lança aplicações apropriadas quando o utilizador clica num link incorporado. São suportados múltiplos links num único controlo e podem ser acedidos por um índice baseado em zero.

Este controlo (e, portanto, a CLinkCtrl classe) está disponível apenas para programas a correr sob Windows XP e posteriores.

Para mais informações, consulte Controlo SysLink no SDK do Windows.

Hierarquia de herança

CObject

CCmdTarget

CWnd

CLinkCtrl

Requerimentos

Cabeçalho: afxcmn.h

CLinkCtrl::CLinkCtrl

Constrói um CLinkCtrl objeto.

CLinkCtrl();

CLinkCtrl::Create

Cria um controlo de ligação e anexa-o a um CLinkCtrl objeto.

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
Apontador para uma cadeia terminada em zero que contém o texto marcado a mostrar. Para mais informações, consulte a secção "Marcação e Acesso a Links" no tópico Visão Geral dos Controlos SysLink.

dwStyle
Especifica o estilo do controlo da ligação. Aplica qualquer combinação de estilos de controlo. Consulte Estilos de Controlo Comuns no Windows SDK para mais informações.

retângulo
Especifica o tamanho e a posição do controlo da ligação. Pode ser um objeto CRect ou uma estrutura RECT .

pParentWnd
Especifica a janela pai do controlo de ligação. Não pode ser NULL.

nID
Especifica o ID do controlo da ligação.

Valor de retorno

TRUE se a inicialização fosse bem-sucedida; caso contrário, FALSO.

Observações

Constroem um CLinkCtrl objeto em dois passos. Primeiro, chama o construtor e depois chama Create, que cria o controlo de ligação e o anexa ao CLinkCtrl objeto. Se quiseres usar estilos de janelas estendidas com o teu controlo, chama CLinkCtrl::CreateEx em vez de Create.

A segunda forma do Create método está obsoleta. Use o primeiro formulário que especifica o parâmetro lpszLinkMarkup .

Example

O primeiro exemplo de código define duas variáveis, chamadas m_Link1 e m_Link2, que são usadas para aceder a dois controlos de ligação.

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;

O próximo exemplo de código cria um controlo de ligação com base na localização de outro controlo de ligação. O resource loader cria o primeiro controlo de ligação quando a sua aplicação inicia. Quando a sua aplicação entra no método OnInitDialog, cria o segundo controlo de ligação em relação à posição do primeiro controlo de ligação. Depois redimensionas o segundo controlo do link para se ajustar ao texto que ele apresenta.

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

Cria um controlo de ligação com estilos estendidos e anexa-o a um CLinkCtrl objeto.

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
Apontador para uma cadeia terminada em zero que contém o texto marcado a mostrar. Para mais informações, consulte a secção "Marcação e Acesso a Links" no tópico Visão Geral dos Controlos SysLink.

dwExStyle
Especifica o estilo estendido do controlo da ligação. Para uma lista de estilos estendidos do Windows, consulte o parâmetro dwExStyle para CreateWindowEx no SDK do Windows.

dwStyle
Especifica o estilo do controlo da ligação. Aplica qualquer combinação de estilos de controlo. Para mais informações, consulte Estilos de Controlo Comuns no SDK do Windows.

retângulo
Especifica o tamanho e a posição do controlo da ligação. Pode ser um objeto CRect ou uma estrutura RECT .

pParentWnd
Especifica a janela pai do controlo de ligação. Não pode ser NULL.

nID
Especifica o ID do controlo da ligação.

Valor de retorno

TRUE se a inicialização fosse bem-sucedida; caso contrário, FALSO.

Observações

Use CreateEx , em vez de Criar, para aplicar constantes estendidas no estilo Windows.

A segunda forma do CreateEx método está obsoleta. Use o primeiro formulário que especifica o parâmetro lpszLinkMarkup .

CLinkCtrl::GetIdealHeight

Recupera a altura ideal do controlo da ligação.

int GetIdealHeight() const;

Valor de retorno

A altura ideal do controlo, em pixels.

Observações

Esta função membro implementa o comportamento da mensagem Win32 LM_GETIDEALHEIGHT, conforme descrito no SDK do Windows.

CLinkCtrl::GetIdealSize

Calcula a altura preferida do texto da ligação para o controlo atual da ligação, dependendo da largura especificada da ligação.

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

Parâmetros

cxMaxWidth
[dentro] A largura máxima da ligação, em pixels.

pSize
[fora] Um apontador para uma estrutura Windows SIZE . Quando este método retorna, o membro cy da SIZE estrutura contém a altura ideal do texto da ligação para a largura do texto da ligação especificada por cxMaxWidth. O membro cx da estrutura contém a largura do texto da ligação que é realmente necessária.

Valor de retorno

A altura preferida do texto do link, em píxeis. O valor de retorno é o mesmo que o valor do membro cy da SIZE estrutura.

Observações

Para um exemplo do GetIdealSize método, veja o exemplo em CLinkCtrl::Create.

Este método envia a mensagem LM_GETIDEALSIZE , que é descrita no SDK do Windows.

CLinkCtrl::GetItem

Recupera os estados e atributos de um item de controlo de ligação.

BOOL GetItem(PLITEM pItem) const;

Parâmetros

pItem
Um ponteiro para uma estrutura LITEM para receber informação do item.

Valor de retorno

Retorna VERDADEIRO em caso de sucesso, FALSO em caso de falha.

Observações

Esta função membro implementa o comportamento da LM_GETITEM de mensagens Win32, conforme descrito no SDK do Windows.

CLinkCtrl::GetItemID

Recupera o ID de um item de controlo de ligação.

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

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

Parâmetros

iLink
O índice de um item de controlo de ligação.

strID
Um objeto CStringT contendo o ID do item especificado.

szID
Uma cadeia terminada por nulo contendo o ID do item especificado.

cchID
O tamanho em caracteres do buffer szID .

Valor de retorno

Retorna VERDADEIRO em caso de sucesso, FALSO em caso de falha.

Observação

Esta função também devolve FALSE se o buffer de szID ou strID for menor que MAX_LINKID_TEXT.

Observações

Recupera o ID de um item específico de controlo de ligação. Para mais informações, consulte a LM_GETITEM de mensagens Win32 no SDK do Windows.

CLinkCtrl::GetItemState

Recupera o estado do item de controlo da ligação.

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

Parâmetros

iLink
O índice de um item de controlo de ligação.

pnState
O valor do item do estado especificado.

StateMask
Combinação de flags que descrevem qual item de estado comprar. Para uma lista de valores, consulte a descrição do state elemento na estrutura LITEM . Os itens permitidos são idênticos aos permitidos em state.

Valor de retorno

Retorna VERDADEIRO em caso de sucesso, FALSO em caso de falha.

Observações

Recupera o valor do item de estado especificado de um item específico de controlo de ligação. Para mais informações, consulte a LM_GETITEM de mensagens Win32 no SDK do Windows.

CLinkCtrl::GetItemUrl

Recupera a URL representada pelo item de controlo do link.

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

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

Parâmetros

iLink
O índice de um item de controlo de ligação.

strUrl
Um objeto CStringT contendo a URL representada pelo item especificado

szUrl
Uma cadeia terminada por null contendo a URL representada pelo item especificado

cchUrl
O tamanho em caracteres do buffer szURL .

Valor de retorno

Retorna VERDADEIRO em caso de sucesso, FALSO em caso de falha.

Observação

Esta função também devolve FALSE se o buffer de szUrl ou strUrl for menor do que MAX_LINKID_TEXT.

Observações

Recupera a URL representada pelo item de controlo de link especificado. Para mais informações, consulte a LM_GETITEM de mensagens Win32 no SDK do Windows.

CLinkCtrl::HitTest

Determina se o utilizador clicou no link especificado.

BOOL HitTest(PLHITTESTINFO phti) const;

Parâmetros

PHTI
Apontador para uma LHITTESTINFO estrutura contendo qualquer informação sobre o link em que o utilizador clicou.

Valor de retorno

Retorna VERDADEIRO em caso de sucesso, FALSO em caso de falha.

Observações

Esta função membro implementa o comportamento da LM_HITTEST de mensagens Win32, conforme descrito no SDK do Windows.

CLinkCtrl::SetItem

Define os estados e atributos de um item de controlo de ligação.

BOOL SetItem(PLITEM pItem);

Parâmetros

pItem
Um ponteiro para uma estrutura LITEM contendo a informação a definir.

Valor de retorno

Retorna VERDADEIRO em caso de sucesso, FALSO em caso de falha.

Observações

Esta função membro implementa o comportamento da LM_SETITEM de mensagens Win32, conforme descrito no SDK do Windows.

CLinkCtrl::SetItemID

Recupera o ID de um item de controlo de ligação.

BOOL SetItemID(
    int iLink,
    LPCWSTR szID);

Parâmetros

iLink
O índice de um item de controlo de ligação.

szID
Uma cadeia terminada por nulo contendo o ID do item especificado.

Valor de retorno

Retorna VERDADEIRO em caso de sucesso, FALSO em caso de falha.

Observações

Define o ID de um item específico de controlo de ligação. Para mais informações, consulte o LM_SETITEM de mensagens Win32 no SDK do Windows.

CLinkCtrl::SetItemState

Recupera o estado do item de controlo da ligação.

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

Parâmetros

iLink
O índice de um item de controlo de ligação.

pnState
O valor do item de estado especificado a ser definido.

StateMask
Combinação de flags que descrevem o item de estado que está a ser definido. Para uma lista de valores, consulte a descrição do state elemento na estrutura LITEM . Os itens permitidos são idênticos aos permitidos em state.

Valor de retorno

Retorna VERDADEIRO em caso de sucesso, FALSO em caso de falha.

Observações

Define o valor do item de estado especificado de um item específico de controlo de ligação. Para mais informações, consulte o LM_SETITEM de mensagens Win32 no SDK do Windows.

CLinkCtrl::SetItemUrl

Define a URL representada pelo item de controlo do link.

BOOL SetItemUrl(
    int iLink,
    LPCWSTR szUrl);

Parâmetros

iLink
O índice de um item de controlo de ligação.

szUrl
Uma cadeia terminada por null contendo a URL representada pelo item especificado

Valor de retorno

Retorna VERDADEIRO em caso de sucesso, FALSO em caso de falha.

Observações

Define a URL representada pelo item de controlo de ligação especificado. Para mais informações, consulte o LM_SETITEM de mensagens Win32 no SDK do Windows.

Consulte também

Gráfico de Hierarquia
Classe CWnd