Klasa CLinkCtrl
Udostępnia funkcje typowej kontrolki SysLink systemu Windows.
Składnia
class CLinkCtrl : public CWnd
Elementy członkowskie
Konstruktory publiczne
Nazwa/nazwisko | opis |
---|---|
CLinkCtrl::CLinkCtrl | CLinkCtrl Tworzy obiekt. |
Metody publiczne
Nazwa/nazwisko | opis |
---|---|
CLinkCtrl::Create | Tworzy kontrolkę łącza i dołącza ją do CLinkCtrl obiektu. |
CLinkCtrl::CreateEx | Tworzy kontrolkę łącza ze stylami rozszerzonymi i dołącza ją do CLinkCtrl obiektu. |
CLinkCtrl::GetIdealHeight | Pobiera idealną wysokość kontrolki łącza. |
CLinkCtrl::GetIdealSize | Oblicza preferowaną wysokość tekstu łącza dla bieżącej kontrolki łącza w zależności od określonej szerokości łącza. |
CLinkCtrl::GetItem | Pobiera stany i atrybuty elementu kontrolki łącza. |
CLinkCtrl::GetItemID | Pobiera identyfikator elementu kontrolki łącza. |
CLinkCtrl::GetItemState | Pobiera stan elementu kontrolki łącza. |
CLinkCtrl::GetItemUrl | Pobiera adres URL reprezentowany przez element kontrolki łącza. |
CLinkCtrl::HitTest | Określa, czy użytkownik kliknął określony link. |
CLinkCtrl::SetItem | Ustawia stany i atrybuty elementu kontrolki łącza. |
CLinkCtrl::SetItemID | Ustawia identyfikator elementu kontrolki łącza. |
CLinkCtrl::SetItemState | Ustawia stan elementu kontrolki łącza. |
CLinkCtrl::SetItemUrl | Ustawia adres URL reprezentowany przez element kontrolki łącza. |
Uwagi
Kontrolka "linku" zapewnia wygodny sposób osadzania linków hipertekstowych w oknie. Rzeczywista kontrolka to okno, które renderuje oznaczony tekst i uruchamia odpowiednie aplikacje, gdy użytkownik kliknie osadzony link. Wiele linków jest obsługiwanych w ramach jednej kontrolki i można uzyskać do nich dostęp za pomocą indeksu opartego na zerach.
Ta kontrolka CLinkCtrl
(i dlatego klasa) jest dostępna tylko dla programów działających w systemie Windows XP i nowszych.
Aby uzyskać więcej informacji, zobacz SysLink Control in the Windows SDK (Kontrolka SysLink w zestawie Windows SDK).
Hierarchia dziedziczenia
CLinkCtrl
Wymagania
Nagłówek: afxcmn.h
CLinkCtrl::CLinkCtrl
CLinkCtrl
Tworzy obiekt.
CLinkCtrl();
CLinkCtrl::Create
Tworzy kontrolkę łącza i dołącza ją do CLinkCtrl
obiektu.
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);
Parametry
lpszLinkMarkup
Wskaźnik do ciągu bez zakończenia, który zawiera oznaczony tekst do wyświetlenia. Aby uzyskać więcej informacji, zobacz sekcję "Znaczniki i dostęp do linków" w temacie Omówienie kontrolek SysLink.
dwStyle
Określa styl kontrolki łącza. Zastosuj dowolną kombinację stylów kontrolek. Aby uzyskać więcej informacji, zobacz Typowe style kontrolek w programie Windows SDK
.
Rect
Określa rozmiar i położenie kontrolki łącza. Może to być obiekt CRect lub struktura RECT .
pParentWnd
Określa okno nadrzędne kontrolki łącza. Nie może mieć wartości NULL.
Nid
Określa identyfikator kontrolki łącza.
Wartość zwracana
WARTOŚĆ TRUE, jeśli inicjowanie zakończyło się pomyślnie; w przeciwnym razie FAŁSZ.
Uwagi
Obiekt jest konstruowany CLinkCtrl
w dwóch krokach. Najpierw wywołaj konstruktor, a następnie wywołaj Create
metodę , która tworzy kontrolkę łącza i dołącza ją do CLinkCtrl
obiektu. Jeśli chcesz użyć rozszerzonych stylów okien z kontrolką, wywołaj metodę CLinkCtrl::CreateEx zamiast Create
.
Druga forma Create
metody jest przestarzała. Użyj pierwszego formularza, który określa parametr lpszLinkMarkup .
Przykład
Pierwszy przykład kodu definiuje dwie zmienne o nazwie m_Link1
i m_Link2
, które są używane do uzyskiwania dostępu do dwóch kontrolek linków.
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;
Następny przykład kodu tworzy jedną kontrolkę łącza na podstawie lokalizacji innej kontrolki łącza. Moduł ładujący zasobów tworzy pierwszą kontrolkę łącza po uruchomieniu aplikacji. Gdy aplikacja wprowadzi metodę OnInitDialog, utworzysz drugą kontrolkę łącza względem pozycji pierwszej kontrolki łącza. Następnie zmieniasz rozmiar drugiej kontrolki łącza tak, aby pasowała do wyświetlanego tekstu.
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
Tworzy kontrolkę łącza ze stylami rozszerzonymi i dołącza ją do CLinkCtrl
obiektu.
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);
Parametry
lpszLinkMarkup
Wskaźnik do ciągu bez zakończenia, który zawiera oznaczony tekst do wyświetlenia. Aby uzyskać więcej informacji, zobacz sekcję "Znaczniki i dostęp do linków" w temacie Omówienie kontrolek SysLink.
dwExStyle
Określa rozszerzony styl kontrolki łącza. Aby uzyskać listę rozszerzonych stylów systemu Windows, zobacz parametr dwExStyle dla polecenia CreateWindowEx w zestawie WINDOWS SDK.
dwStyle
Określa styl kontrolki łącza. Zastosuj dowolną kombinację stylów kontrolek. Aby uzyskać więcej informacji, zobacz Typowe style kontrolek w zestawie Windows SDK.
Rect
Określa rozmiar i położenie kontrolki łącza. Może to być obiekt CRect lub struktura RECT .
pParentWnd
Określa okno nadrzędne kontrolki łącza. Nie może mieć wartości NULL.
Nid
Określa identyfikator kontrolki łącza.
Wartość zwracana
WARTOŚĆ TRUE, jeśli inicjowanie zakończyło się pomyślnie; w przeciwnym razie FAŁSZ.
Uwagi
Użyj CreateEx
zamiast polecenia Utwórz , aby zastosować rozszerzone stałe stylu systemu Windows.
Druga forma CreateEx
metody jest przestarzała. Użyj pierwszego formularza, który określa parametr lpszLinkMarkup .
CLinkCtrl::GetIdealHeight
Pobiera idealną wysokość kontrolki łącza.
int GetIdealHeight() const;
Wartość zwracana
Idealna wysokość kontrolki w pikselach.
Uwagi
Ta funkcja składowa implementuje zachowanie komunikatu Win32 LM_GETIDEALHEIGHT zgodnie z opisem w zestawie WINDOWS SDK.
CLinkCtrl::GetIdealSize
Oblicza preferowaną wysokość tekstu łącza dla bieżącej kontrolki łącza w zależności od określonej szerokości łącza.
int GetIdealSize(
int cxMaxWidth,
SIZE* pSize) const;
Parametry
cxMaxWidth
[in] Maksymalna szerokość łącza w pikselach.
Rozmiar p
[out] Wskaźnik do struktury ROZMIAR systemu Windows. Gdy ta metoda zwróci, składowa cy SIZE
struktury zawiera idealną wysokość tekstu łącza dla szerokości tekstu łącza określonego przez cxMaxWidth. Składowa cx struktury zawiera szerokość tekstu łącza, która jest rzeczywiście potrzebna.
Wartość zwracana
Preferowana wysokość tekstu łącza w pikselach. Wartość zwracana jest taka sama jak wartość elementu członkowskiego SIZE
cy struktury.
Uwagi
Aby zapoznać się z przykładem metody, zobacz przykład GetIdealSize
w pliku CLinkCtrl::Create.
Ta metoda wysyła komunikat LM_GETIDEALSIZE opisany w zestawie Windows SDK.
CLinkCtrl::GetItem
Pobiera stany i atrybuty elementu kontrolki łącza.
BOOL GetItem(PLITEM pItem) const;
Parametry
pItem
Wskaźnik do struktury LITEM w celu odbierania informacji o elemencie.
Wartość zwracana
Zwraca wartość TRUE w przypadku powodzenia, FALSE w przypadku niepowodzenia.
Uwagi
Ta funkcja składowa implementuje zachowanie LM_GETITEM komunikatu Win32 zgodnie z opisem w zestawie WINDOWS SDK.
CLinkCtrl::GetItemID
Pobiera identyfikator elementu kontrolki łącza.
BOOL GetItemID(
int iLink,
CString& strID) const;
BOOL GetItemID(
int iLink,
LPWSTR szID,
UINT cchID) const;
Parametry
iLink
Indeks elementu kontrolki łącza.
identyfikator strID
Obiekt CStringT zawierający identyfikator określonego elementu.
Identyfikator szID
Ciąg o wartości null zawierający identyfikator określonego elementu.
cchID
Rozmiar w postaci znaków buforu szID .
Wartość zwracana
Zwraca wartość TRUE w przypadku powodzenia, FALSE w przypadku niepowodzenia.
Uwaga
Ta funkcja zwraca również wartość FALSE, jeśli bufor identyfikatora szID lub strID jest mniejszy niż MAX_LINKID_TEXT.
Uwagi
Pobiera identyfikator określonego elementu kontrolki łącza. Aby uzyskać więcej informacji, zobacz komunikat Win32 LM_GETITEM w zestawie Windows SDK.
CLinkCtrl::GetItemState
Pobiera stan elementu kontrolki łącza.
BOOL GetItemState(
int iLink,
UINT* pnState,
UINT stateMask = LIS_FOCUSED | LIS_ENABLED | LIS_VISITED) const;
Parametry
iLink
Indeks elementu kontrolki łącza.
pnState
Wartość określonego elementu stanu.
maska stanu
Kombinacja flag opisujących element stanu do pobrania. Aby uzyskać listę wartości, zobacz opis elementu state
członkowskiego w strukturze LITEM . Dozwolone elementy są identyczne z elementami dozwolonymi w programie state
.
Wartość zwracana
Zwraca wartość TRUE w przypadku powodzenia, FALSE w przypadku niepowodzenia.
Uwagi
Pobiera wartość określonego elementu stanu określonego elementu kontrolki łącza. Aby uzyskać więcej informacji, zobacz komunikat Win32 LM_GETITEM w zestawie Windows SDK.
CLinkCtrl::GetItemUrl
Pobiera adres URL reprezentowany przez element kontrolki łącza.
BOOL GetItemUrl(
int iLink,
CString& strUrl) const;
BOOL GetItemUrl(
int iLink,
LPWSTR szUrl,
UINT cchUrl) const;
Parametry
iLink
Indeks elementu kontrolki łącza.
strUrl
Obiekt CStringT zawierający adres URL reprezentowany przez określony element
szUrl
Ciąg o wartości null zawierający adres URL reprezentowany przez określony element
cchUrl
Rozmiar w znakach buforu szURL .
Wartość zwracana
Zwraca wartość TRUE w przypadku powodzenia, FALSE w przypadku niepowodzenia.
Uwaga
Ta funkcja zwraca również wartość FALSE, jeśli bufor szUrl lub strUrl jest mniejszy niż MAX_LINKID_TEXT.
Uwagi
Pobiera adres URL reprezentowany przez określony element kontrolki linku. Aby uzyskać więcej informacji, zobacz komunikat Win32 LM_GETITEM w zestawie Windows SDK.
CLinkCtrl::HitTest
Określa, czy użytkownik kliknął określony link.
BOOL HitTest(PLHITTESTINFO phti) const;
Parametry
phti
Wskaźnik do LHITTESTINFO
struktury zawierającej wszelkie informacje o linku klikniętego przez użytkownika.
Wartość zwracana
Zwraca wartość TRUE w przypadku powodzenia, FALSE w przypadku niepowodzenia.
Uwagi
Ta funkcja składowa implementuje zachowanie komunikatu Win32 LM_HITTEST zgodnie z opisem w zestawie WINDOWS SDK.
CLinkCtrl::SetItem
Ustawia stany i atrybuty elementu kontrolki łącza.
BOOL SetItem(PLITEM pItem);
Parametry
pItem
Wskaźnik do struktury LITEM zawierającej informacje do ustawienia.
Wartość zwracana
Zwraca wartość TRUE w przypadku powodzenia, FALSE w przypadku niepowodzenia.
Uwagi
Ta funkcja składowa implementuje zachowanie LM_SETITEM komunikatu Win32 zgodnie z opisem w zestawie Windows SDK.
CLinkCtrl::SetItemID
Pobiera identyfikator elementu kontrolki łącza.
BOOL SetItemID(
int iLink,
LPCWSTR szID);
Parametry
iLink
Indeks elementu kontrolki łącza.
Identyfikator szID
Ciąg o wartości null zawierający identyfikator określonego elementu.
Wartość zwracana
Zwraca wartość TRUE w przypadku powodzenia, FALSE w przypadku niepowodzenia.
Uwagi
Ustawia identyfikator określonego elementu kontrolki łącza. Aby uzyskać więcej informacji, zobacz komunikat Win32 LM_SETITEM w zestawie Windows SDK.
CLinkCtrl::SetItemState
Pobiera stan elementu kontrolki łącza.
BOOL SetItemState(
int iLink,
UINT state,
UINT stateMask = LIS_FOCUSED | LIS_ENABLED | LIS_VISITED);
Parametry
iLink
Indeks elementu kontrolki łącza.
pnState
Wartość ustawionego określonego elementu stanu.
maska stanu
Kombinacja flag opisujących ustawiany element stanu. Aby uzyskać listę wartości, zobacz opis elementu state
członkowskiego w strukturze LITEM . Dozwolone elementy są identyczne z elementami dozwolonymi w programie state
.
Wartość zwracana
Zwraca wartość TRUE w przypadku powodzenia, FALSE w przypadku niepowodzenia.
Uwagi
Ustawia wartość określonego elementu stanu określonego elementu kontrolki łącza. Aby uzyskać więcej informacji, zobacz komunikat Win32 LM_SETITEM w zestawie Windows SDK.
CLinkCtrl::SetItemUrl
Ustawia adres URL reprezentowany przez element kontrolki łącza.
BOOL SetItemUrl(
int iLink,
LPCWSTR szUrl);
Parametry
iLink
Indeks elementu kontrolki łącza.
szUrl
Ciąg o wartości null zawierający adres URL reprezentowany przez określony element
Wartość zwracana
Zwraca wartość TRUE w przypadku powodzenia, FALSE w przypadku niepowodzenia.
Uwagi
Ustawia adres URL reprezentowany przez określony element kontrolki linku. Aby uzyskać więcej informacji, zobacz komunikat Win32 LM_SETITEM w zestawie Windows SDK.