次の方法で共有


CLinkCtrl::Create

更新 : 2007 年 11 月

リンク コントロールを作成し、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 の文字列へのポインタ。詳細については、MSDN ライブラリのトピック「Overview of SysLink Controls」にある「Markup and Link Access」を参照してください。

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

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

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

  • nID
    リンク コントロールの ID。

戻り値

初期化が成功した場合は true。それ以外の場合は false。

解説

CLinkCtrl オブジェクトは、2 ステップで構築します。まず、コンストラクタを呼び出し、その後 Create を呼び出してリンク コントロールを作成し、CLinkCtrl オブジェクトに結び付けます。コントロールに拡張ウィンドウ スタイルを適用する場合は、Create の代わりに CLinkCtrl::CreateEx を呼び出します。

2 番目の形式の Create メソッドの使用は推奨されていません。lpszLinkMarkup パラメータを指定する 1 番目の形式を使用してください。

使用例

次のコード例では、2 つのリンク コントロールへのアクセスに使用される m_Link1 および m_Link2 という名前の 2 つの変数を定義しています。

    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://msdn2.microsoft.com/en-us/visualc/default.aspx\">")
        _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));
    }

必要条件

ヘッダー : afxcmn.h

参照

参照

CLinkCtrl クラス

階層図

CLinkCtrl::CreateEx

その他の技術情報

CLinkCtrl のメンバ