CLinkCtrl 클래스
Windows의 공용 SysLink 컨트롤의 기능을 제공합니다.
구문
class CLinkCtrl : public CWnd
멤버
공용 생성자
속성 | 설명 |
---|---|
CLinkCtrl::CLinkCtrl | CLinkCtrl 개체를 생성합니다. |
공용 메서드
이름 | 설명 |
---|---|
CLinkCtrl::Create | 링크 컨트롤을 만들어 개체에 CLinkCtrl 연결합니다. |
CLinkCtrl::CreateEx | 확장 스타일을 사용하여 링크 컨트롤을 만들고 개체에 CLinkCtrl 연결합니다. |
CLinkCtrl::GetIdealHeight | 링크 컨트롤의 이상적인 높이를 검색합니다. |
CLinkCtrl::GetIdealSize | 링크의 지정된 너비에 따라 현재 링크 컨트롤에 대한 링크 텍스트의 기본 설정 높이를 계산합니다. |
CLinkCtrl::GetItem | 링크 컨트롤 항목의 상태 및 특성을 검색합니다. |
CLinkCtrl::GetItemID | 링크 컨트롤 항목의 ID를 검색합니다. |
CLinkCtrl::GetItemState | 링크 컨트롤 항목의 상태를 검색합니다. |
CLinkCtrl::GetItemUrl | 링크 컨트롤 항목이 나타내는 URL을 검색합니다. |
CLinkCtrl::HitTest | 사용자가 지정된 링크를 클릭했는지 여부를 확인합니다. |
CLinkCtrl::SetItem | 링크 컨트롤 항목의 상태 및 특성을 설정합니다. |
CLinkCtrl::SetItemID | 링크 컨트롤 항목의 ID를 설정합니다. |
CLinkCtrl::SetItemState | 링크 컨트롤 항목의 상태를 설정합니다. |
CLinkCtrl::SetItemUrl | 링크 컨트롤 항목이 나타내는 URL을 설정합니다. |
설명
"링크 컨트롤"은 창에 하이퍼텍스트 링크를 포함하는 편리한 방법을 제공합니다. 실제 컨트롤은 표시된 텍스트를 렌더링하고 사용자가 포함된 링크를 클릭할 때 적절한 애플리케이션을 시작하는 창입니다. 하나의 컨트롤 내에서 여러 링크가 지원되며 0부터 시작하는 인덱스로 액세스할 수 있습니다.
이 컨트롤(따라서 CLinkCtrl
클래스)은 Windows XP 이상에서 실행되는 프로그램에서만 사용할 수 있습니다.
자세한 내용은 Windows SDK의 SysLink 컨트롤 을 참조하세요.
상속 계층 구조
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
표시할 표시된 텍스트가 포함된 0으로 끝나는 문자열에 대한 포인터입니다. 자세한 내용은 SysLink 컨트롤 개요 항목 의 "태그 및 링크 액세스" 섹션을 참조하세요.
dwStyle
링크 컨트롤의 스타일을 지정합니다. 컨트롤 스타일의 조합을 적용합니다. 자세한 내용은 일반 컨트롤 스타일을 Windows SDK
참조하세요.
rect
링크 컨트롤의 크기와 위치를 지정합니다. CRect 개체 또는 RECT 구조체일 수 있습니다.
pParentWnd
링크 컨트롤의 부모 창을 지정합니다. NULL이 아니어야 합니다.
nID
링크 컨트롤의 ID를 지정합니다.
Return Value
초기화에 성공하면 TRUE입니다. 그렇지 않으면 FALSE입니다.
설명
두 단계로 개체를 CLinkCtrl
생성합니다. 먼저 생성자를 호출한 다음 링크 컨트롤을 만들어 개체에 CLinkCtrl
연결하는 호출Create
합니다. 컨트롤에 확장 창 스타일을 사용하려면 대신 CLinkCtrl::CreateExCreate
를 호출합니다.
메서드의 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
표시할 표시된 텍스트가 포함된 0으로 끝나는 문자열에 대한 포인터입니다. 자세한 내용은 SysLink 컨트롤 개요 항목 의 "태그 및 링크 액세스" 섹션을 참조하세요.
dwExStyle
링크 컨트롤의 확장 스타일을 지정합니다. 확장된 Windows 스타일 목록은 Windows SDK의 CreateWindowEx에 대한 dwExStyle 매개 변수를 참조하세요.
dwStyle
링크 컨트롤의 스타일을 지정합니다. 컨트롤 스타일의 조합을 적용합니다. 자세한 내용은 Windows SDK의 공용 컨트롤 스타일을 참조하세요.
rect
링크 컨트롤의 크기와 위치를 지정합니다. CRect 개체 또는 RECT 구조체일 수 있습니다.
pParentWnd
링크 컨트롤의 부모 창을 지정합니다. NULL이 아니어야 합니다.
nID
링크 컨트롤의 ID를 지정합니다.
Return Value
초기화에 성공하면 TRUE입니다. 그렇지 않으면 FALSE입니다.
설명
만들기 대신 확장 Windows 스타일 상수 적용을 사용합니다CreateEx
.
메서드의 CreateEx
두 번째 형식은 더 이상 사용되지 않습니다. lpszLinkMarkup 매개 변수를 지정하는 첫 번째 양식을 사용합니다.
CLinkCtrl::GetIdealHeight
링크 컨트롤의 이상적인 높이를 검색합니다.
int GetIdealHeight() const;
Return Value
컨트롤의 이상적인 높이(픽셀)입니다.
설명
이 멤버 함수는 Windows SDK에 설명된 대로 Win32 메시지 LM_GETIDEALHEIGHT 동작을 구현합니다.
CLinkCtrl::GetIdealSize
링크의 지정된 너비에 따라 현재 링크 컨트롤에 대한 링크 텍스트의 기본 설정 높이를 계산합니다.
int GetIdealSize(
int cxMaxWidth,
SIZE* pSize) const;
매개 변수
cxMaxWidth
[in] 링크의 최대 너비(픽셀)입니다.
pSize
[out] Windows SIZE 구조체에 대한 포인터입니다. 이 메서드가 반환될 때 구조체의 SIZE
cy 멤버는 cxMaxWidth로 지정된 링크 텍스트 너비에 이상적인 링크 텍스트 높이를 포함합니다. 구조체의 cx 멤버에는 실제로 필요한 링크 텍스트 너비가 포함됩니다.
Return Value
링크 텍스트의 기본 설정 높이(픽셀)입니다. 반환 값은 구조체의 cy 멤버 값과 SIZE
동일합니다.
설명
메서드의 예제는 GetIdealSize
CLinkCtrl::Create의 예제를 참조하세요.
이 메서드는 Windows SDK에 설명된 LM_GETIDEALSIZE 메시지를 보냅니다.
CLinkCtrl::GetItem
링크 컨트롤 항목의 상태 및 특성을 검색합니다.
BOOL GetItem(PLITEM pItem) const;
매개 변수
pItem
항목 정보를 받을 LITEM 구조체에 대한 포인터입니다.
Return Value
성공하면 TRUE를 반환하고 실패하면 FALSE를 반환합니다.
설명
이 멤버 함수는 Windows SDK에 설명된 대로 Win32 메시지 LM_GETITEM 동작을 구현합니다.
CLinkCtrl::GetItemID
링크 컨트롤 항목의 ID를 검색합니다.
BOOL GetItemID(
int iLink,
CString& strID) const;
BOOL GetItemID(
int iLink,
LPWSTR szID,
UINT cchID) const;
매개 변수
iLink
링크 컨트롤 항목의 인덱스입니다.
strID
지정된 항목의 ID를 포함하는 CStringT 개체입니다.
szID
지정된 항목의 ID를 포함하는 null로 끝나는 문자열입니다.
cchID
szID 버퍼의 문자 크기입니다.
Return Value
성공하면 TRUE를 반환하고 실패하면 FALSE를 반환합니다.
참고 항목
szID 또는 strID의 버퍼가 MAX_LINKID_TEXT보다 작은 경우에도 이 함수는 FALSE를 반환합니다.
설명
특정 링크 컨트롤 항목의 ID를 검색합니다. 자세한 내용은 Windows SDK의 Win32 메시지 LM_GETITEM 참조하세요.
CLinkCtrl::GetItemState
링크 컨트롤 항목의 상태를 검색합니다.
BOOL GetItemState(
int iLink,
UINT* pnState,
UINT stateMask = LIS_FOCUSED | LIS_ENABLED | LIS_VISITED) const;
매개 변수
iLink
링크 컨트롤 항목의 인덱스입니다.
pnState
지정된 상태 항목의 값입니다.
stateMask
가져올 상태 항목을 설명하는 플래그의 조합입니다. 값 목록은 LITEM 구조체의 state
멤버에 대한 설명을 참조하세요. 허용 가능한 항목은 에서 허용되는 state
항목과 동일합니다.
Return Value
성공하면 TRUE를 반환하고 실패하면 FALSE를 반환합니다.
설명
특정 링크 컨트롤 항목의 지정된 상태 항목 값을 검색합니다. 자세한 내용은 Windows SDK의 Win32 메시지 LM_GETITEM 참조하세요.
CLinkCtrl::GetItemUrl
링크 컨트롤 항목이 나타내는 URL을 검색합니다.
BOOL GetItemUrl(
int iLink,
CString& strUrl) const;
BOOL GetItemUrl(
int iLink,
LPWSTR szUrl,
UINT cchUrl) const;
매개 변수
iLink
링크 컨트롤 항목의 인덱스입니다.
strUrl
지정된 항목이 나타내는 URL을 포함하는 CStringT 개체
szUrl
지정된 항목이 나타내는 URL을 포함하는 null로 끝나는 문자열입니다.
cchUrl
szURL 버퍼의 문자 크기입니다.
Return Value
성공하면 TRUE를 반환하고 실패하면 FALSE를 반환합니다.
참고 항목
szUrl 또는 strUrl의 버퍼가 MAX_LINKID_TEXT보다 작은 경우에도 이 함수는 FALSE를 반환합니다.
설명
지정된 링크 컨트롤 항목이 나타내는 URL을 검색합니다. 자세한 내용은 Windows SDK의 Win32 메시지 LM_GETITEM 참조하세요.
CLinkCtrl::HitTest
사용자가 지정된 링크를 클릭했는지 여부를 확인합니다.
BOOL HitTest(PLHITTESTINFO phti) const;
매개 변수
phti
LHITTESTINFO
사용자가 클릭한 링크에 대한 정보를 포함하는 구조체에 대한 포인터입니다.
Return Value
성공하면 TRUE를 반환하고 실패하면 FALSE를 반환합니다.
설명
이 멤버 함수는 Windows SDK에 설명된 대로 Win32 메시지 LM_HITTEST 동작을 구현합니다.
CLinkCtrl::SetItem
링크 컨트롤 항목의 상태 및 특성을 설정합니다.
BOOL SetItem(PLITEM pItem);
매개 변수
pItem
설정할 정보를 포함하는 LITEM 구조체에 대한 포인터입니다.
Return Value
성공하면 TRUE를 반환하고 실패하면 FALSE를 반환합니다.
설명
이 멤버 함수는 Windows SDK에 설명된 대로 Win32 메시지 LM_SETITEM 동작을 구현합니다.
CLinkCtrl::SetItemID
링크 컨트롤 항목의 ID를 검색합니다.
BOOL SetItemID(
int iLink,
LPCWSTR szID);
매개 변수
iLink
링크 컨트롤 항목의 인덱스입니다.
szID
지정된 항목의 ID를 포함하는 null로 끝나는 문자열입니다.
Return Value
성공하면 TRUE를 반환하고 실패하면 FALSE를 반환합니다.
설명
특정 링크 컨트롤 항목의 ID를 설정합니다. 자세한 내용은 Windows SDK의 Win32 메시지 LM_SETITEM 참조하세요.
CLinkCtrl::SetItemState
링크 컨트롤 항목의 상태를 검색합니다.
BOOL SetItemState(
int iLink,
UINT state,
UINT stateMask = LIS_FOCUSED | LIS_ENABLED | LIS_VISITED);
매개 변수
iLink
링크 컨트롤 항목의 인덱스입니다.
pnState
설정되는 지정된 상태 항목의 값입니다.
stateMask
설정되는 상태 항목을 설명하는 플래그의 조합입니다. 값 목록은 LITEM 구조체의 state
멤버에 대한 설명을 참조하세요. 허용 가능한 항목은 에서 허용되는 state
항목과 동일합니다.
Return Value
성공하면 TRUE를 반환하고 실패하면 FALSE를 반환합니다.
설명
특정 링크 컨트롤 항목의 지정된 상태 항목 값을 설정합니다. 자세한 내용은 Windows SDK의 Win32 메시지 LM_SETITEM 참조하세요.
CLinkCtrl::SetItemUrl
링크 컨트롤 항목이 나타내는 URL을 설정합니다.
BOOL SetItemUrl(
int iLink,
LPCWSTR szUrl);
매개 변수
iLink
링크 컨트롤 항목의 인덱스입니다.
szUrl
지정된 항목이 나타내는 URL을 포함하는 null로 끝나는 문자열입니다.
Return Value
성공하면 TRUE를 반환하고 실패하면 FALSE를 반환합니다.
설명
지정된 링크 컨트롤 항목이 나타내는 URL을 설정합니다. 자세한 내용은 Windows SDK의 Win32 메시지 LM_SETITEM 참조하세요.