Поделиться через


Класс CLinkCtrl

Предоставляет функциональные возможности стандартного элемента управления SysLink Windows.

Синтаксис

class CLinkCtrl : public CWnd

Участники

Открытые конструкторы

Имя Описание
CLinkCtrl::CLinkCtrl Формирует объект CLinkCtrl.

Открытые методы

Имя Описание
CLinkCtrl::Create Создает элемент управления ссылкой и присоединяет его к объекту CLinkCtrl .
CLinkCtrl::CreateEx Создает элемент управления ссылкой с расширенными стилями и присоединяет его к объекту CLinkCtrl .
CLinkCtrl::GetIdealHeight Извлекает идеальную высоту элемента управления ссылкой.
CLinkCtrl::GetIdealSize Вычисляет предпочтительную высоту текста ссылки для текущего элемента управления ссылкой в зависимости от указанной ширины ссылки.
CLinkCtrl::GetItem Извлекает состояния и атрибуты элемента управления ссылкой.
CLinkCtrl::GetItemID Извлекает идентификатор элемента управления ссылкой.
CLinkCtrl::GetItemState Извлекает состояние элемента управления ссылкой.
CLinkCtrl::GetItemUrl Извлекает URL-адрес, представленный элементом управления ссылкой.
CLinkCtrl::HitTest Определяет, щелкнул ли пользователь указанную ссылку.
CLinkCtrl::SetItem Задает состояния и атрибуты элемента управления ссылкой.
CLinkCtrl::SetItemID Задает идентификатор элемента управления ссылкой.
CLinkCtrl::SetItemState Задает состояние элемента управления ссылкой.
CLinkCtrl::SetItemUrl Задает URL-адрес, представленный элементом управления ссылкой.

Замечания

Элемент управления ссылкой предоставляет удобный способ внедрения гипертекстовых ссылок в окно. Фактический элемент управления — это окно, которое отображает помеченный текст и запускает соответствующие приложения, когда пользователь щелкает внедренную ссылку. Несколько ссылок поддерживаются в одном элементе управления и могут быть доступны с помощью отсчитываемого от нуля индекса.

Этот элемент управления (и, следовательно CLinkCtrl , класс) доступен только для программ, работающих в Windows XP и более поздних версиях.

Дополнительные сведения см. в разделе SysLink Control в пакете SDK для Windows.

Иерархия наследования

CObject

CCmdTarget

CWnd

CLinkCtrl

Требования

Заголовок: afxcmn.h

CLinkCtrl::CLinkCtrl

Формирует объект CLinkCtrl.

CLinkCtrl();

CLinkCtrl::Create

Создает элемент управления ссылкой и присоединяет его к объекту 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);

Параметры

lpszLinkMarkup
Указатель на строку нулевого завершения, содержащую помеченный текст для отображения. Дополнительные сведения см. в разделе "Разметка и доступ по ссылке" в разделе " Обзор элементов управления SysLink".

dwStyle
Задает стиль элемента управления ссылкой. Применение любого сочетания стилей элементов управления. Дополнительные сведения см. в разделе Windows SDK "Общие стили элементов управления".

rect
Указывает размер и позицию элемента управления ссылкой. Это может быть объект CRect или структура RECT .

pParentWnd
Указывает родительское окно элемента управления ссылкой. Он не должен иметь значение NULL.

nID
Указывает идентификатор элемента управления ссылкой.

Возвращаемое значение

ЗНАЧЕНИЕ TRUE, если инициализация выполнена успешно; в противном случае ЗНАЧЕНИЕ FALSE.

Замечания

Вы создаете CLinkCtrl объект на двух шагах. Сначала вызовите конструктор и вызов Create, который создает элемент управления ссылкой и присоединяет его к объекту CLinkCtrl . Если вы хотите использовать расширенные стили окон с элементом управления, вызовите CLinkCtrl::CreateEx вместо Create.

Вторая форма Create метода устарела. Используйте первую форму, указывающую параметр lpszLinkMarkup .

Пример

Первый пример кода определяет две переменные, именованные m_Link1 и m_Link2используемые для доступа к двум элементам управления ссылками.

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;

В следующем примере кода создается один элемент управления ссылкой на основе расположения другого элемента управления ссылкой. Загрузчик ресурсов создает первый элемент управления ссылкой при запуске приложения. Когда приложение входит в метод OnInitDialog, вы создадите второй элемент управления ссылкой относительно положения первого элемента управления ссылкой. Затем измените размер второго элемента управления ссылкой, чтобы вместить отображаемый текст.

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

Создает элемент управления ссылкой с расширенными стилями и присоединяет его к объекту 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);

Параметры

lpszLinkMarkup
Указатель на строку нулевого завершения, содержащую помеченный текст для отображения. Дополнительные сведения см. в разделе "Разметка и доступ по ссылке" в разделе " Обзор элементов управления SysLink".

dwExStyle
Задает расширенный стиль элемента управления ссылкой. Список расширенных стилей Windows см. в параметре dwExStyle для CreateWindowEx в пакете SDK для Windows.

dwStyle
Задает стиль элемента управления ссылкой. Применение любого сочетания стилей элементов управления. Дополнительные сведения см. в разделе "Общие стили элементов управления" в пакете SDK для Windows.

rect
Указывает размер и позицию элемента управления ссылкой. Это может быть объект CRect или структура RECT .

pParentWnd
Указывает родительское окно элемента управления ссылкой. Он не должен иметь значение NULL.

nID
Указывает идентификатор элемента управления ссылкой.

Возвращаемое значение

ЗНАЧЕНИЕ TRUE, если инициализация выполнена успешно; в противном случае ЗНАЧЕНИЕ FALSE.

Замечания

Используйте CreateEx вместо создания для применения расширенных констант стиля Windows.

Вторая форма CreateEx метода устарела. Используйте первую форму, указывающую параметр lpszLinkMarkup .

CLinkCtrl::GetIdealHeight

Извлекает идеальную высоту элемента управления ссылкой.

int GetIdealHeight() const;

Возвращаемое значение

Идеальная высота элемента управления в пикселях.

Замечания

Эта функция-член реализует поведение сообщения Win32 LM_GETIDEALHEIGHT, как описано в пакете SDK для Windows.

CLinkCtrl::GetIdealSize

Вычисляет предпочтительную высоту текста ссылки для текущего элемента управления ссылкой в зависимости от указанной ширины ссылки.

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

Параметры

cxMaxWidth
[in] Максимальная ширина ссылки в пикселях.

pSize
[out] Указатель на структуру Windows SIZE . При возврате этого метода элемент SIZE cy структуры содержит идеальную высоту текста ссылки для ширины текста ссылки, указанной cxMaxWidth. Элемент cx структуры содержит необходимую ширину текста ссылки.

Возвращаемое значение

Предпочтительная высота текста ссылки в пикселях. Возвращаемое значение совпадает со значением элемента cy SIZE структуры.

Замечания

Пример метода см. в примере GetIdealSize в CLinkCtrl::Create.

Этот метод отправляет сообщение LM_GETIDEALSIZE , описанное в пакете SDK для Windows.

CLinkCtrl::GetItem

Извлекает состояния и атрибуты элемента управления ссылкой.

BOOL GetItem(PLITEM pItem) const;

Параметры

pItem
Указатель на структуру LITEM для получения сведений о элементе.

Возвращаемое значение

Возвращает значение TRUE при успешном выполнении, false при сбое.

Замечания

Эта функция-член реализует поведение LM_GETITEM сообщения Win32, как описано в пакете SDK для Windows.

CLinkCtrl::GetItemID

Извлекает идентификатор элемента управления ссылкой.

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

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

Параметры

iLink
Индекс элемента управления ссылкой.

strID
Объект CStringT, содержащий идентификатор указанного элемента.

szID
Строка, завершающая значение NULL, содержащая идентификатор указанного элемента.

cchID
Размер в символах буфера szID .

Возвращаемое значение

Возвращает значение TRUE при успешном выполнении, false при сбое.

Примечание.

Эта функция также возвращает значение FALSE, если буфер szID или strID меньше MAX_LINKID_TEXT.

Замечания

Извлекает идентификатор определенного элемента управления ссылкой. Дополнительные сведения см. в сообщении Win32 LM_GETITEM в пакете SDK для Windows.

CLinkCtrl::GetItemState

Извлекает состояние элемента управления ссылкой.

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

Параметры

iLink
Индекс элемента управления ссылкой.

pnState
Значение указанного элемента состояния.

stateMask
Сочетание флагов, описывающих элемент состояния для получения. Список значений см. в описании state элемента в структуре LITEM . Допустимые элементы идентичны допустимым stateэлементам.

Возвращаемое значение

Возвращает значение TRUE при успешном выполнении, false при сбое.

Замечания

Извлекает значение указанного элемента состояния определенного элемента управления ссылкой. Дополнительные сведения см. в сообщении Win32 LM_GETITEM в пакете SDK для Windows.

CLinkCtrl::GetItemUrl

Извлекает URL-адрес, представленный элементом управления ссылкой.

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

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

Параметры

iLink
Индекс элемента управления ссылкой.

strUrl
Объект CStringT, содержащий URL-адрес, представленный указанным элементом

szUrl
Строка, завершающая значение NULL, содержащая URL-адрес, представленный указанным элементом

cchUrl
Размер в символах буфера szURL .

Возвращаемое значение

Возвращает значение TRUE при успешном выполнении, false при сбое.

Примечание.

Эта функция также возвращает значение FALSE, если буфер szUrl или strUrl меньше MAX_LINKID_TEXT.

Замечания

Извлекает URL-адрес, представленный указанным элементом управления ссылкой. Дополнительные сведения см. в сообщении Win32 LM_GETITEM в пакете SDK для Windows.

CLinkCtrl::HitTest

Определяет, щелкнул ли пользователь указанную ссылку.

BOOL HitTest(PLHITTESTINFO phti) const;

Параметры

phti
Указатель на LHITTESTINFO структуру, содержащую любую информацию о ссылке, которую щелкнул пользователь.

Возвращаемое значение

Возвращает значение TRUE при успешном выполнении, false при сбое.

Замечания

Эта функция-член реализует поведение сообщения Win32 LM_HITTEST, как описано в пакете SDK для Windows.

CLinkCtrl::SetItem

Задает состояния и атрибуты элемента управления ссылкой.

BOOL SetItem(PLITEM pItem);

Параметры

pItem
Указатель на структуру LITEM , содержащую заданные сведения.

Возвращаемое значение

Возвращает значение TRUE при успешном выполнении, false при сбое.

Замечания

Эта функция-член реализует поведение сообщения Win32 LM_SETITEM, как описано в пакете SDK для Windows.

CLinkCtrl::SetItemID

Извлекает идентификатор элемента управления ссылкой.

BOOL SetItemID(
    int iLink,
    LPCWSTR szID);

Параметры

iLink
Индекс элемента управления ссылкой.

szID
Строка, завершающая значение NULL, содержащая идентификатор указанного элемента.

Возвращаемое значение

Возвращает значение TRUE при успешном выполнении, false при сбое.

Замечания

Задает идентификатор определенного элемента управления ссылкой. Дополнительные сведения см. в сообщении Win32 LM_SETITEM в пакете SDK для Windows.

CLinkCtrl::SetItemState

Извлекает состояние элемента управления ссылкой.

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

Параметры

iLink
Индекс элемента управления ссылкой.

pnState
Значение заданного элемента состояния.

stateMask
Сочетание флагов, описывающих заданный элемент состояния. Список значений см. в описании state элемента в структуре LITEM . Допустимые элементы идентичны допустимым stateэлементам.

Возвращаемое значение

Возвращает значение TRUE при успешном выполнении, false при сбое.

Замечания

Задает значение указанного элемента состояния определенного элемента управления ссылкой. Дополнительные сведения см. в сообщении Win32 LM_SETITEM в пакете SDK для Windows.

CLinkCtrl::SetItemUrl

Задает URL-адрес, представленный элементом управления ссылкой.

BOOL SetItemUrl(
    int iLink,
    LPCWSTR szUrl);

Параметры

iLink
Индекс элемента управления ссылкой.

szUrl
Строка, завершающая значение NULL, содержащая URL-адрес, представленный указанным элементом

Возвращаемое значение

Возвращает значение TRUE при успешном выполнении, false при сбое.

Замечания

Задает URL-адрес, представленный указанным элементом управления ссылкой. Дополнительные сведения см. в сообщении Win32 LM_SETITEM в пакете SDK для Windows.

См. также

Диаграмма иерархии
Класс CWnd