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」を参照してください。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