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
表示するテキストの上部にマークされている含むゼロで終わる文字列へのポインター。詳細については、「"の"マークアップで、の MSDN ライブラリトピック SysLink コントロールの概要 のアクセス」をリンクします。dwStyle
リンク コントロールのスタイルを指定します。コントロールのスタイルの組み合わせを適用します。詳細については、Windows SDK の コモン コントロールのスタイル を参照してください。rect
リンク コントロールのサイズと位置を指定します。これは CRect のオブジェクトまたは RECT の構造体のいずれかです。pParentWnd
リンク コントロールの親ウィンドウを指定します。NULL は指定できません。nID
リンク コントロールの ID を指定します。
戻り値
初期化が成功true ; それ false。
解説
CLinkCtrl オブジェクトは、次の手順で構築します。最初に、リンク コントロールを作成し、CLinkCtrl のオブジェクトに関連するコンストラクターを呼び出し、次に Createを呼び出します。は、コントロールとの拡張ウィンドウ スタイルを使用する場合は、Createの代わりに CLinkCtrl::CreateEx を呼び出します。
Create のメソッドの 2 番目のフォームは推奨されていません。lpszLinkMarkup のパラメーターを指定する最初のを使用します。
使用例
次のコード例に m_Link1 と m_Link2という 2 種類のリンク コントロールへのアクセスに使用される 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