Classe CLinkCtrl
Fornece a funcionalidade do controle SysLink comum do Windows.
Sintaxe
class CLinkCtrl : public CWnd
Membros
Construtores públicos
Nome | Descrição |
---|---|
CLinkCtrl::CLinkCtrl | Constrói um objeto CLinkCtrl . |
Métodos públicos
Nome | Descrição |
---|---|
CLinkCtrl::Create | Cria um controle de link e o anexa a um objeto CLinkCtrl . |
CLinkCtrl::CreateEx | Cria um controle de link com estilos estendidos e o anexa a um objeto CLinkCtrl . |
CLinkCtrl::GetIdealHeight | Recupera a altura ideal do controle de link. |
CLinkCtrl::GetIdealSize | Calcula a altura preferencial do texto do link para o controle de link atual, dependendo da largura especificada do link. |
CLinkCtrl::GetItem | Recupera os estados e atributos de um item de controle de link. |
CLinkCtrl::GetItemID | Recupera a ID de um item de controle de link. |
CLinkCtrl::GetItemState | Recupera o estado do item de controle de link. |
CLinkCtrl::GetItemUrl | Recupera o URL representado pelo item de controle de link. |
CLinkCtrl::HitTest | Determina se o usuário clicou no link especificado. |
CLinkCtrl::SetItem | Define os estados e atributos de um item de controle de link. |
CLinkCtrl::SetItemID | Define a ID de um item de controle de link. |
CLinkCtrl::SetItemState | Define o estado do item de controle de vínculo. |
CLinkCtrl::SetItemUrl | Define o URL representado pelo item de controle de link. |
Comentários
Um "controle de link" fornece uma maneira conveniente de inserir links de hipertexto em uma janela. O controle real é uma janela que renderiza o texto marcado e inicia aplicativos apropriados quando o usuário clica em um link inserido. Há suporte para vários links em um controle e podem ser acessados por um índice baseado em zero.
Esse controle (e, portanto, a classe CLinkCtrl
) está disponível somente para programas em execução no Windows XP e versões posteriores.
Para obter mais informações, consulte Controle SysLink no SDK do Windows.
Hierarquia de herança
CLinkCtrl
Requisitos
Cabeçalho: afxcmn.h
CLinkCtrl::CLinkCtrl
Constrói um objeto CLinkCtrl
.
CLinkCtrl();
CLinkCtrl::Create
Cria um controle de link e o anexa a um 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
Ponteiro para uma cadeia de caracteres com término zero que contém o texto marcado a ser exibido. Para obter mais informações, consulte a seção "Marcação e acesso ao link" na Visão geral do tópico dos controles SysLink.
dwStyle
Especifica o estilo do controle de link. Aplique qualquer combinação de estilos de controle. Confira Estilos de controle comuns no Windows SDK
para obter mais informações.
rect
Especifica o tamanho e a posição do controle de link. Pode ser um objeto CRect ou uma estrutura RECT.
pParentWnd
Especifica a janela pai do controle de link. Não pode ser NULL.
Nid
Especifica a ID do controle de link.
Valor de retorno
TRUE se a inicialização for bem-sucedida, caso contrário, FALSE.
Comentários
Um objeto CLinkCtrl
é construído em duas etapas. Primeiro, chame o construtor e, em seguida, chame Create
, que cria o controle de link e o anexa ao objeto CLinkCtrl
. Se quiser usar estilos de janela estendidos com o controle, chame CLinkCtrl::CreateEx em vez de Create
.
A segunda forma do método Create
foi preterida. Use o primeiro formulário que especifica o parâmetro lpszLinkMarkup.
Exemplo
O primeiro exemplo de código define duas variáveis, nomeadas m_Link1
e m_Link2
, que são usadas para acessar dois controles de link.
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 controle de link com base no local de outro controle de link. O carregador de recursos cria o primeiro controle de link quando o aplicativo é iniciado. Quando o aplicativo insere o método OnInitDialog, você cria o segundo controle de link em relação à posição do primeiro controle de link. Em seguida, redimensione o segundo controle de link para ajustar o texto exibido.
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 controle de link com estilos estendidos e o anexa a um 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
Ponteiro para uma cadeia de caracteres com término zero que contém o texto marcado a ser exibido. Para obter mais informações, consulte a seção "Marcação e acesso ao link" na Visão geral do tópico dos controles SysLink.
dwExStyle
Especifica o estilo estendido do controle de link. Para obter uma lista de estilos estendidos do Windows, confira o parâmetro dwExStyle para CreateWindowEx no SDK do Windows.
dwStyle
Especifica o estilo do controle de link. Aplique qualquer combinação de estilos de controle. Confira Estilos de controle comuns no SDK do Windows para obter mais informações.
rect
Especifica o tamanho e a posição do controle de link. Pode ser um objeto CRect ou uma estrutura RECT.
pParentWnd
Especifica a janela pai do controle de link. Não pode ser NULL.
Nid
Especifica a ID do controle de link.
Valor de retorno
TRUE se a inicialização for bem-sucedida, caso contrário, FALSE.
Comentários
Use CreateEx
em vez de Criar para aplicar constantes de estilo estendidas do Windows.
A segunda forma do método CreateEx
foi preterida. Use o primeiro formulário que especifica o parâmetro lpszLinkMarkup.
CLinkCtrl::GetIdealHeight
Recupera a altura ideal do controle de link.
int GetIdealHeight() const;
Valor de retorno
A altura ideal do controle, em pixels.
Comentários
Essa função membro implementa o comportamento da mensagem LM_GETIDEALHEIGHT do Win32, conforme descrito no SDK do Windows.
CLinkCtrl::GetIdealSize
Calcula a altura preferencial do texto do link para o controle de link atual, dependendo da largura especificada do link.
int GetIdealSize(
int cxMaxWidth,
SIZE* pSize) const;
Parâmetros
cxMaxWidth
[entrada] A largura máxima do link, em pixels.
pSize
[saída] Um ponteiro para uma estrutura SIZE do Windows. Quando esse método retorna, o membro cy da estrutura SIZE
contém a altura de texto do link ideal para a largura do texto do link especificada por cxMaxWidth. O membro cx da estrutura contém a largura do texto do link que é realmente necessária.
Valor de retorno
A altura preferencial do texto do link, em pixels. O valor retornado é o mesmo que o valor do membro cy da estrutura SIZE
.
Comentários
Para obter um exemplo do método GetIdealSize
, consulte o exemplo em CLinkCtrl::Create.
Esse método envia a mensagem LM_GETIDEALSIZE, que é descrita no SDK do Windows.
CLinkCtrl::GetItem
Recupera os estados e atributos de um item de controle de link.
BOOL GetItem(PLITEM pItem) const;
Parâmetros
pItem
Um ponteiro para uma estrutura LITEM para receber informações do item.
Valor de retorno
Retorna TRUE em caso de êxito. FALSE, em caso de falha.
Comentários
Essa função membro implementa o comportamento da mensagem LM_GETITEM do Win32, conforme descrito no SDK do Windows.
CLinkCtrl::GetItemID
Recupera a ID de um item de controle de link.
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 controle de link.
strID
Um objeto CStringT que contém a ID do item especificado.
szID
Uma cadeia de caracteres com término nulo que contém a ID do item especificado.
cchID
O tamanho em caracteres do buffer de szID.
Valor de retorno
Retorna TRUE em caso de êxito. FALSE, em caso de falha.
Observação
Essa função também retornará FALSE se o buffer de szID ou strID for menor que MAX_LINKID_TEXT.
Comentários
Recupera a ID de um item de controle de link. Para obter mais informações, consulte a mensagem LM_GETITEM do Win32 no SDK do Windows.
CLinkCtrl::GetItemState
Recupera o estado do item de controle de link.
BOOL GetItemState(
int iLink,
UINT* pnState,
UINT stateMask = LIS_FOCUSED | LIS_ENABLED | LIS_VISITED) const;
Parâmetros
iLink
O índice de um item de controle de link.
pnState
O valor do item de estado especificado.
stateMask
Combinação de sinalizadores que descrevem qual item de estado obter. Para obter uma lista de valores, consulte a descrição do membro state
na estrutura LITEM. Os itens permitidos são idênticos aos permitidos em state
.
Valor de retorno
Retorna TRUE em caso de êxito. FALSE, em caso de falha.
Comentários
Recupera o valor do item de estado especificado de um item de controle de link específico. Para obter mais informações, consulte a mensagem LM_GETITEM do Win32 no SDK do Windows.
CLinkCtrl::GetItemUrl
Recupera o URL representado pelo item de controle de 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 controle de link.
strUrl
Um objeto CStringT que contém o URL representado pelo item especificado
szUrl
Uma cadeia de caracteres com término nulo que contém o URL representado pelo item especificado
cchUrl
O tamanho em caracteres do buffer de szURL.
Valor de retorno
Retorna TRUE em caso de êxito. FALSE, em caso de falha.
Observação
Essa função também retornará FALSE se o buffer de szUrl ou strUrl for menor que MAX_LINKID_TEXT.
Comentários
Recupera o URL representado pelo item de controle de link especificado. Para obter mais informações, consulte a mensagem LM_GETITEM do Win32 no SDK do Windows.
CLinkCtrl::HitTest
Determina se o usuário clicou no link especificado.
BOOL HitTest(PLHITTESTINFO phti) const;
Parâmetros
phti
Ponteiro para uma estrutura LHITTESTINFO
que contém qualquer informação sobre o link que o usuário clicou.
Valor de retorno
Retorna TRUE em caso de êxito. FALSE, em caso de falha.
Comentários
Essa função membro implementa o comportamento da mensagem LM_HITTEST do Win32, conforme descrito no SDK do Windows.
CLinkCtrl::SetItem
Define os estados e atributos de um item de controle de link.
BOOL SetItem(PLITEM pItem);
Parâmetros
pItem
Um ponteiro para uma estrutura LITEM que contém as informações a serem definidas.
Valor de retorno
Retorna TRUE em caso de êxito. FALSE, em caso de falha.
Comentários
Essa função membro implementa o comportamento da mensagem LM_SETITEM do Win32, conforme descrito no SDK do Windows.
CLinkCtrl::SetItemID
Recupera a ID de um item de controle de link.
BOOL SetItemID(
int iLink,
LPCWSTR szID);
Parâmetros
iLink
O índice de um item de controle de link.
szID
Uma cadeia de caracteres com término nulo que contém a ID do item especificado.
Valor de retorno
Retorna TRUE em caso de êxito. FALSE, em caso de falha.
Comentários
Define a ID de um item de controle de link. Para obter mais informações, consulte a mensagem do Win32 LM_SETITEM no SDK do Windows.
CLinkCtrl::SetItemState
Recupera o estado do item de controle de link.
BOOL SetItemState(
int iLink,
UINT state,
UINT stateMask = LIS_FOCUSED | LIS_ENABLED | LIS_VISITED);
Parâmetros
iLink
O índice de um item de controle de link.
pnState
O valor do item de estado especificado que está sendo definido.
stateMask
Combinação de sinalizadores que descrevem o item de estado que está sendo definido. Para obter uma lista de valores, consulte a descrição do membro state
na estrutura LITEM. Os itens permitidos são idênticos aos permitidos em state
.
Valor de retorno
Retorna TRUE em caso de êxito. FALSE, em caso de falha.
Comentários
Define o valor do item de estado especificado de um item de controle de link específico. Para obter mais informações, consulte a mensagem do Win32 LM_SETITEM no SDK do Windows.
CLinkCtrl::SetItemUrl
Define o URL representado pelo item de controle de link.
BOOL SetItemUrl(
int iLink,
LPCWSTR szUrl);
Parâmetros
iLink
O índice de um item de controle de link.
szUrl
Uma cadeia de caracteres com término nulo que contém o URL representado pelo item especificado
Valor de retorno
Retorna TRUE em caso de êxito. FALSE, em caso de falha.
Comentários
Define o URL representado pelo item de controle de link especificado. Para obter mais informações, consulte a mensagem do Win32 LM_SETITEM no SDK do Windows.