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 を設定します。

解説

"リンク コントロール" は、ハイパーテキスト リンクをウィンドウに埋め込むのに便利な方法です。 実際のコントロールは、ユーザーが埋め込みリンクをクリックしたときに、マークされたテキストをレンダリングし、適切なアプリケーションを起動するウィンドウです。 1 つのコントロール内で複数のリンクがサポートされており、0 から始まるインデックスからアクセスできます。

このコントロール (したがって CLinkCtrl 、クラス) は、Windows XP 以降で実行されているプログラムでのみ使用できます。

詳細については、Windows SDK の SysLink コントロールを参照してください

継承階層

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
表示するマーク付きテキストを含む、0 で終わる文字列へのポインター。 詳細については、「SysLink コントロールの概要」トピック の「マークアップおよびリンク アクセス」セクションを参照してください。

dwStyle
リンク コントロールのスタイルを指定します。 コントロール スタイルの任意の組み合わせを適用します。 詳細については、「 共通コントロール スタイル 」を Windows SDK 参照してください。

rect
リンク コントロールのサイズと位置を指定します。 CRect オブジェクトまたは RECT 構造体のいずれかを指定できます。

pParentWnd
リンク コントロールの親ウィンドウを指定します。 NULL は指定できません。

nID
リンク コントロールの ID を指定します。

戻り値

初期化が成功した場合は TRUE。それ以外の場合は FAL Standard Edition。

解説

2 つの手順でオブジェクトを CLinkCtrl 構築します。 まず、コンストラクターを呼び出してから呼び出 Createします。これにより、リンク コントロールが作成され、オブジェクトに CLinkCtrl アタッチされます。 コントロールで拡張ウィンドウ スタイルを使用する場合は、代わりに CreateCLinkCtrl::CreateEx を呼び出します。

メソッドの 2 番目の Create 形式は非推奨です。 lpszLinkMarkup パラメーターを指定する最初のフォームを使用します。

最初のコード例では、2 つのリンク コントロールにアクセスするために使用される 2 つの変数 (名前付き変数と m_Link2、名前付きm_Link1変数) を定義します。

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;

次のコード例では、別のリンク コントロールの場所に基づいて 1 つのリンク コントロールを作成します。 リソース ローダーは、アプリケーションの起動時に最初のリンク コントロールを作成します。 アプリケーションが OnInitDialog メソッドに入ると、最初のリンク コントロールの位置を基準にして 2 番目のリンク コントロールを作成します。 次に、表示されるテキストに合わせて 2 番目のリンク コントロールのサイズを変更します。

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 の CreateWindowExdwExStyle パラメーターを参照してください。

dwStyle
リンク コントロールのスタイルを指定します。 コントロール スタイルの任意の組み合わせを適用します。 詳細については、「Windows SDK の共通コントロール スタイル」を参照してください

rect
リンク コントロールのサイズと位置を指定します。 CRect オブジェクトまたは RECT 構造体のいずれかを指定できます。

pParentWnd
リンク コントロールの親ウィンドウを指定します。 NULL は指定できません。

nID
リンク コントロールの ID を指定します。

戻り値

初期化が成功した場合は TRUE。それ以外の場合は FAL Standard Edition。

解説

拡張 Windows スタイル定数を適用するには、Create代わりに使用CreateExします。

メソッドの 2 番目の CreateEx 形式は非推奨です。 lpszLinkMarkup パラメーターを指定する最初のフォームを使用します。

CLinkCtrl::GetIdealHeight

リンク コントロールの理想的な高さを取得します。

int GetIdealHeight() const;

戻り値

コントロールの理想的な高さ (ピクセル単位)。

解説

このメンバー関数は、Windows SDK で説明されているように、Win32 メッセージ LM_GETIDEALHEIGHTの動作を実装します。

CLinkCtrl::GetIdealSize

リンクの指定した幅に応じて、現在のリンク コントロールのリンク テキストの高さを計算します。

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

パラメーター

cxMaxWidth
[in]リンクの最大幅 (ピクセル単位)。

pSize
[out]Windows SIZE 構造体へのポインター。 このメソッドから制御が戻るときに、構造体の SIZE cy メンバーには、cxMaxWidth指定されたリンク テキスト幅の理想的なリンク テキストの高さが含まれます。 構造体の cx メンバーには、実際に必要なリンク テキストの幅が含まれています。

戻り値

リンク テキストの好ましい高さ (ピクセル単位)。 戻り値は、構造体の cy メンバーSIZE値と同じです。

解説

メソッドのGetIdealSize例については、CLinkCtrl::Create例を参照してください。

このメソッドは、 Windows SDK で説明されているLM_GETIDEALSIZE メッセージを送信します。

CLinkCtrl::GetItem

リンク コントロール項目の状態と属性を取得します。

BOOL GetItem(PLITEM pItem) const;

パラメーター

pItem
項目情報を 受け取る LITEM 構造体へのポインター。

戻り値

成功した場合は 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 バッファーの文字単位のサイズ。

戻り値

成功した場合は TRUE を返し、失敗した場合は FALSE を返します。

Note

この関数は、szID または strIDバッファーがMAX_LINKID_TEXTより小さい場合Standard Edition FAL も返します。

解説

特定のリンク コントロール項目の ID を取得します。 詳細については、Windows SDK でLM_GETITEM Win32 メッセージを参照してください。

CLinkCtrl::GetItemState

リンク コントロール項目の状態を取得します。

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

パラメーター

iLink
リンク コントロール項目のインデックス。

pnState
指定した状態項目の値。

stateMask
取得する状態項目を記述するフラグの組み合わせ。 値の一覧については、LITEM 構造体のメンバーのstate説明を参照してください。 許容される項目は、で許可 stateされているものと同じです。

戻り値

成功した場合は TRUE を返し、失敗した場合は FALSE を返します。

解説

特定のリンク コントロール項目の指定した状態項目の値を取得します。 詳細については、Windows SDK でLM_GETITEM Win32 メッセージを参照してください。

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 バッファーの文字単位のサイズ。

戻り値

成功した場合は TRUE を返し、失敗した場合は FALSE を返します。

Note

この関数は、szUrl または strUrlバッファーがMAX_LINKID_TEXTより小さい場合はStandard Edition FAL も返します。

解説

指定したリンク コントロール項目によって表される URL を取得します。 詳細については、Windows SDK でLM_GETITEM Win32 メッセージを参照してください。

CLinkCtrl::HitTest

ユーザーが指定したリンクをクリックしたかどうかを判断します。

BOOL HitTest(PLHITTESTINFO phti) const;

パラメーター

phti
ユーザーが LHITTESTINFO クリックしたリンクに関する情報を含む構造体へのポインター。

戻り値

成功した場合は TRUE を返し、失敗した場合は FALSE を返します。

解説

このメンバー関数は、Windows SDK で説明されているように、Win32 メッセージ LM_HITTESTの動作を実装します。

CLinkCtrl::SetItem

リンク コントロール項目の状態と属性を設定します。

BOOL SetItem(PLITEM pItem);

パラメーター

pItem
設定する情報を 含む LITEM 構造体へのポインター。

戻り値

成功した場合は TRUE を返し、失敗した場合は FALSE を返します。

解説

このメンバー関数は、Windows SDK で説明されているように、Win32 メッセージ LM_Standard Edition TITEM の動作を実装します。

CLinkCtrl::SetItemID

リンク コントロール項目の ID を取得します。

BOOL SetItemID(
    int iLink,
    LPCWSTR szID);

パラメーター

iLink
リンク コントロール項目のインデックス。

szID
指定した項目の ID を含む null で終わる文字列。

戻り値

成功した場合は TRUE を返し、失敗した場合は FALSE を返します。

解説

特定のリンク コントロール項目の ID を設定します。 詳細については、Windows SDK の Win32 メッセージ LM_Standard Edition TITEM を参照してください。

CLinkCtrl::SetItemState

リンク コントロール項目の状態を取得します。

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

パラメーター

iLink
リンク コントロール項目のインデックス。

pnState
設定されている指定された状態項目の値。

stateMask
設定されている状態項目を記述するフラグの組み合わせ。 値の一覧については、LITEM 構造体のメンバーのstate説明を参照してください。 許容される項目は、で許可 stateされているものと同じです。

戻り値

成功した場合は TRUE を返し、失敗した場合は FALSE を返します。

解説

特定のリンク コントロール項目の指定した状態項目の値を設定します。 詳細については、Windows SDK の Win32 メッセージ LM_Standard Edition TITEM を参照してください。

CLinkCtrl::SetItemUrl

リンク コントロール項目で表される URL を設定します。

BOOL SetItemUrl(
    int iLink,
    LPCWSTR szUrl);

パラメーター

iLink
リンク コントロール項目のインデックス。

szUrl
指定した項目で表される URL を含む null で終わる文字列

戻り値

成功した場合は TRUE を返し、失敗した場合は FALSE を返します。

解説

指定したリンク コントロール項目で表される URL を設定します。 詳細については、Windows SDK の Win32 メッセージ LM_Standard Edition TITEM を参照してください。

関連項目

階層図
CWnd クラス