Udostępnij za pośrednictwem


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

Obiekt CObject

CCmdTarget

CWnd

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 Createmetodę , 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.

Zobacz też

Wykres hierarchii
Klasa CWnd