Класс 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.
Иерархия наследования
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.