Classe CLinkCtrl
Fornisce la funzionalità del controllo SysLink comune di Windows.
Sintassi
class CLinkCtrl : public CWnd
Membri
Costruttori pubblici
Nome | Descrizione |
---|---|
CLinkCtrl::CLinkCtrl | Costruisce un oggetto CLinkCtrl . |
Metodi pubblici
Nome | Descrizione |
---|---|
CLinkCtrl::Create | Crea un controllo collegamento e lo collega a un CLinkCtrl oggetto . |
CLinkCtrl::CreateEx | Crea un controllo collegamento con stili estesi e lo associa a un CLinkCtrl oggetto . |
CLinkCtrl::GetIdealHeight | Recupera l'altezza ideale del controllo collegamento. |
CLinkCtrl::GetIdealSize | Calcola l'altezza preferita del testo del collegamento per il controllo collegamento corrente, a seconda della larghezza specificata del collegamento. |
CLinkCtrl::GetItem | Recupera gli stati e gli attributi di un elemento del controllo collegamento. |
CLinkCtrl::GetItemID | Recupera l'ID di un elemento del controllo collegamento. |
CLinkCtrl::GetItemState | Recupera lo stato dell'elemento del controllo collegamento. |
CLinkCtrl::GetItemUrl | Recupera l'URL rappresentato dall'elemento del controllo collegamento. |
CLinkCtrl::HitTest | Determina se l'utente ha fatto clic sul collegamento specificato. |
CLinkCtrl::SetItem | Imposta gli stati e gli attributi di un elemento del controllo collegamento. |
CLinkCtrl::SetItemID | Imposta l'ID di un elemento del controllo collegamento. |
CLinkCtrl::SetItemState | Imposta lo stato dell'elemento del controllo collegamento. |
CLinkCtrl::SetItemUrl | Imposta l'URL rappresentato dall'elemento del controllo collegamento. |
Osservazioni:
Un "controllo collegamento" offre un modo pratico per incorporare collegamenti ipertestuali in una finestra. Il controllo effettivo è una finestra che esegue il rendering del testo contrassegnato e avvia le applicazioni appropriate quando l'utente fa clic su un collegamento incorporato. Più collegamenti sono supportati all'interno di un controllo e possono essere accessibili da un indice in base zero.
Questo controllo (e quindi la CLinkCtrl
classe ) è disponibile solo per i programmi in esecuzione in Windows XP e versioni successive.
Per altre informazioni, vedere Controllo SysLink in Windows SDK.
Gerarchia di ereditarietà
CLinkCtrl
Requisiti
Intestazione: afxcmn.h
CLinkCtrl::CLinkCtrl
Costruisce un oggetto CLinkCtrl
.
CLinkCtrl();
CLinkCtrl::Create
Crea un controllo collegamento e lo collega a un CLinkCtrl
oggetto .
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);
Parametri
lpszLinkMarkup
Puntatore a una stringa con terminazione zero che contiene il testo contrassegnato per la visualizzazione. Per altre informazioni, vedere la sezione "Markup and Link Access" nell'argomento Overview of SysLink Controls.For more information, see the section "Markup and Link Access" in the topic Overview of SysLink Controls.
dwStyle
Specifica lo stile del controllo collegamento. Applicare qualsiasi combinazione di stili di controllo. Per altre informazioni, vedere Stili di controllo comuni in Windows SDK
.
rect
Specifica le dimensioni e la posizione del controllo collegamento. Può essere un oggetto CRect o una struttura RECT .
pParentWnd
Specifica la finestra padre del controllo collegamento. Non deve essere NULL.
nID
Specifica l'ID del controllo collegamento.
Valore restituito
TRUE se l'inizializzazione ha avuto esito positivo; in caso contrario FALSE.
Osservazioni:
Si costruisce un CLinkCtrl
oggetto in due passaggi. Prima di tutto, chiamare il costruttore e quindi chiamare Create
, che crea il controllo collegamento e lo collega all'oggetto CLinkCtrl
. Se si desidera usare gli stili di windows estesi con il controllo, chiamare CLinkCtrl::CreateEx invece di Create
.
La seconda forma del Create
metodo è deprecata. Usare il primo modulo che specifica il parametro lpszLinkMarkup .
Esempio
Il primo esempio di codice definisce due variabili, denominate m_Link1
e m_Link2
, usate per accedere a due controlli di collegamento.
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;
Nell'esempio di codice seguente viene creato un controllo collegamento in base alla posizione di un altro controllo collegamento. Il caricatore di risorse crea il primo controllo collegamento all'avvio dell'applicazione. Quando l'applicazione immette il metodo OnInitDialog, si crea il secondo controllo collegamento relativo alla posizione del primo controllo collegamento. Ridimensionare quindi il secondo controllo collegamento per adattarlo al testo visualizzato.
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 controllo collegamento con stili estesi e lo associa a un CLinkCtrl
oggetto .
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);
Parametri
lpszLinkMarkup
Puntatore a una stringa con terminazione zero che contiene il testo contrassegnato per la visualizzazione. Per altre informazioni, vedere la sezione "Markup and Link Access" nell'argomento Overview of SysLink Controls.For more information, see the section "Markup and Link Access" in the topic Overview of SysLink Controls.
dwExStyle
Specifica lo stile esteso del controllo collegamento. Per un elenco degli stili di Windows estesi, vedere il parametro dwExStyle per CreateWindowEx in Windows SDK.
dwStyle
Specifica lo stile del controllo collegamento. Applicare qualsiasi combinazione di stili di controllo. Per altre informazioni, vedere Stili di controllo comuni in Windows SDK.
rect
Specifica le dimensioni e la posizione del controllo collegamento. Può essere un oggetto CRect o una struttura RECT .
pParentWnd
Specifica la finestra padre del controllo collegamento. Non deve essere NULL.
nID
Specifica l'ID del controllo collegamento.
Valore restituito
TRUE se l'inizializzazione ha avuto esito positivo; in caso contrario FALSE.
Osservazioni:
Usare CreateEx
invece di Crea per applicare costanti di stile Windows estese.
La seconda forma del CreateEx
metodo è deprecata. Usare il primo modulo che specifica il parametro lpszLinkMarkup .
CLinkCtrl::GetIdealHeight
Recupera l'altezza ideale del controllo collegamento.
int GetIdealHeight() const;
Valore restituito
Altezza ideale del controllo, in pixel.
Osservazioni:
Questa funzione membro implementa il comportamento del messaggio Win32 LM_GETIDEALHEIGHT, come descritto in Windows SDK.
CLinkCtrl::GetIdealSize
Calcola l'altezza preferita del testo del collegamento per il controllo collegamento corrente, a seconda della larghezza specificata del collegamento.
int GetIdealSize(
int cxMaxWidth,
SIZE* pSize) const;
Parametri
cxMaxWidth
[in] Larghezza massima del collegamento, espressa in pixel.
pSize
[out] Puntatore a una struttura Windows SIZE . Quando termina, il membro cy della SIZE
struttura contiene l'altezza del testo del collegamento ideale per la larghezza del testo del collegamento specificata da cxMaxWidth. Il membro cx della struttura contiene la larghezza del testo del collegamento effettivamente necessaria.
Valore restituito
Altezza preferita del testo del collegamento, in pixel. Il valore restituito corrisponde al valore del membro cy della SIZE
struttura.
Osservazioni:
Per un esempio del GetIdealSize
metodo , vedere l'esempio in CLinkCtrl::Create.
Questo metodo invia il messaggio di LM_GETIDEALSIZE descritto in Windows SDK.
CLinkCtrl::GetItem
Recupera gli stati e gli attributi di un elemento del controllo collegamento.
BOOL GetItem(PLITEM pItem) const;
Parametri
pItem
Puntatore a una struttura LITEM per ricevere informazioni sull'elemento.
Valore restituito
Restituisce TRUE in caso di esito positivo, FALSE in caso di errore.
Osservazioni:
Questa funzione membro implementa il comportamento del messaggio Win32 LM_GETITEM, come descritto in Windows SDK.
CLinkCtrl::GetItemID
Recupera l'ID di un elemento del controllo collegamento.
BOOL GetItemID(
int iLink,
CString& strID) const;
BOOL GetItemID(
int iLink,
LPWSTR szID,
UINT cchID) const;
Parametri
iLink
Indice di un elemento del controllo collegamento.
strID
Oggetto CStringT contenente l'ID dell'elemento specificato.
szID
Stringa con terminazione Null contenente l'ID dell'elemento specificato.
cchID
Dimensione in caratteri del buffer szID .
Valore restituito
Restituisce TRUE in caso di esito positivo, FALSE in caso di errore.
Nota
Questa funzione restituisce ANCHE FALSE se il buffer di szID o strID è minore di MAX_LINKID_TEXT.
Osservazioni:
Recupera l'ID di un elemento di controllo collegamento specifico. Per altre informazioni, vedere il messaggio Win32 LM_GETITEM in Windows SDK.
CLinkCtrl::GetItemState
Recupera lo stato dell'elemento del controllo collegamento.
BOOL GetItemState(
int iLink,
UINT* pnState,
UINT stateMask = LIS_FOCUSED | LIS_ENABLED | LIS_VISITED) const;
Parametri
iLink
Indice di un elemento del controllo collegamento.
pnState
Valore dell'elemento di stato specificato.
stateMask
Combinazione di flag che descrivono l'elemento di stato da ottenere. Per un elenco di valori, vedere la descrizione del state
membro nella struttura LITEM . Gli elementi consentiti sono identici a quelli consentiti in state
.
Valore restituito
Restituisce TRUE in caso di esito positivo, FALSE in caso di errore.
Osservazioni:
Recupera il valore dell'elemento di stato specificato di un elemento del controllo collegamento specifico. Per altre informazioni, vedere il messaggio Win32 LM_GETITEM in Windows SDK.
CLinkCtrl::GetItemUrl
Recupera l'URL rappresentato dall'elemento del controllo collegamento.
BOOL GetItemUrl(
int iLink,
CString& strUrl) const;
BOOL GetItemUrl(
int iLink,
LPWSTR szUrl,
UINT cchUrl) const;
Parametri
iLink
Indice di un elemento del controllo collegamento.
strUrl
Oggetto CStringT contenente l'URL rappresentato dall'elemento specificato
szUrl
Stringa con terminazione Null contenente l'URL rappresentato dall'elemento specificato
cchUrl
Dimensione in caratteri del buffer szURL .
Valore restituito
Restituisce TRUE in caso di esito positivo, FALSE in caso di errore.
Nota
Questa funzione restituisce anche FALSE se il buffer di szUrl o strUrl è minore di MAX_LINKID_TEXT.
Osservazioni:
Recupera l'URL rappresentato dall'elemento del controllo collegamento specificato. Per altre informazioni, vedere il messaggio Win32 LM_GETITEM in Windows SDK.
CLinkCtrl::HitTest
Determina se l'utente ha fatto clic sul collegamento specificato.
BOOL HitTest(PLHITTESTINFO phti) const;
Parametri
phti
Puntatore a una LHITTESTINFO
struttura contenente informazioni sul collegamento selezionato dall'utente.
Valore restituito
Restituisce TRUE in caso di esito positivo, FALSE in caso di errore.
Osservazioni:
Questa funzione membro implementa il comportamento del messaggio Win32 LM_HITTEST, come descritto in Windows SDK.
CLinkCtrl::SetItem
Imposta gli stati e gli attributi di un elemento del controllo collegamento.
BOOL SetItem(PLITEM pItem);
Parametri
pItem
Puntatore a una struttura LITEM contenente le informazioni da impostare.
Valore restituito
Restituisce TRUE in caso di esito positivo, FALSE in caso di errore.
Osservazioni:
Questa funzione membro implementa il comportamento del messaggio Win32 LM_SETITEM, come descritto in Windows SDK.
CLinkCtrl::SetItemID
Recupera l'ID di un elemento del controllo collegamento.
BOOL SetItemID(
int iLink,
LPCWSTR szID);
Parametri
iLink
Indice di un elemento del controllo collegamento.
szID
Stringa con terminazione Null contenente l'ID dell'elemento specificato.
Valore restituito
Restituisce TRUE in caso di esito positivo, FALSE in caso di errore.
Osservazioni:
Imposta l'ID di un elemento di controllo collegamento specifico. Per altre informazioni, vedere il messaggio Win32 LM_SETITEM in Windows SDK.
CLinkCtrl::SetItemState
Recupera lo stato dell'elemento del controllo collegamento.
BOOL SetItemState(
int iLink,
UINT state,
UINT stateMask = LIS_FOCUSED | LIS_ENABLED | LIS_VISITED);
Parametri
iLink
Indice di un elemento del controllo collegamento.
pnState
Valore dell'elemento di stato specificato impostato.
stateMask
Combinazione di flag che descrivono l'elemento di stato impostato. Per un elenco di valori, vedere la descrizione del state
membro nella struttura LITEM . Gli elementi consentiti sono identici a quelli consentiti in state
.
Valore restituito
Restituisce TRUE in caso di esito positivo, FALSE in caso di errore.
Osservazioni:
Imposta il valore dell'elemento di stato specificato di un elemento del controllo collegamento specifico. Per altre informazioni, vedere il messaggio Win32 LM_SETITEM in Windows SDK.
CLinkCtrl::SetItemUrl
Imposta l'URL rappresentato dall'elemento del controllo collegamento.
BOOL SetItemUrl(
int iLink,
LPCWSTR szUrl);
Parametri
iLink
Indice di un elemento del controllo collegamento.
szUrl
Stringa con terminazione Null contenente l'URL rappresentato dall'elemento specificato
Valore restituito
Restituisce TRUE in caso di esito positivo, FALSE in caso di errore.
Osservazioni:
Imposta l'URL rappresentato dall'elemento del controllo collegamento specificato. Per altre informazioni, vedere il messaggio Win32 LM_SETITEM in Windows SDK.