經典 CHyperLink (Chris Maunder) 僅支援靜態文字超連結。專案需求在 Picture Control 上實現超連結:滑鼠進入變手型、點擊開啟網址、ToolTip 顯示提示。本文在其基礎上衍生 CMapHyperLink,專為圖片控件設計。
| 方法 | 說明 |
|---|---|
SetURL(CString) | 設定目標網址 (如 https://www.google.com) |
GetURL() | 取得目前網址 |
SetTipText(CString) | 設定 ToolTip 文字 (預設為 URL) |
GetTipText() | 取得 ToolTip 文字 |
SetVisited(BOOL) | 設定已瀏覽狀態 (視覺回饋) |
GetVisited() | 取得瀏覽狀態 |
SetLinkCursor(HCURSOR) | 自訂滑鼠游標 (預設手型) |
GetLinkCursor() | 取得游標控制碼 |
SetAutoSize(BOOL) | 視窗縮放時自動調整圖片位置 (預設開啟) |
GetAutoSize() | 取得自動調整狀態 |
IDC_PIC_LINK,Type: Frame 或 Bitmap)。CMapHyperLink (需先加入 .h/.cpp)。OnInitDialog 設定:
m_picLink.SetURL(_T("https://www.google.com"));
m_picLink.SetTipText(_T("點擊前往 Google 搜尋"));
// 可選:載入圖片
m_picLink.SetBitmap(IDB_MY_LOGO); // 若控件支援
CStatic,處理 WM_MOUSEMOVE/WM_LBUTTONDOWN/WM_SETCURSOR。WM_SETCURSOR 回傳 SetLinkCursor 設定的游標 (預設 LoadCursor(NULL, IDC_HAND))。WM_LBUTTONDOWN 呼叫 ShellExecute(_T("open"), m_strURL, ...) 開啟預設瀏覽器。PreSubclassWindow 建立 CToolTipCtrl 並 AddTool 關聯控制項區域。CHyperLink 衝突;專注圖片控件行為。
滑鼠懸停顯示手型游標與 ToolTip,點擊啟動瀏覽器開啟指定網址。
CHyperLink。Notify 樣式,可接收 STN_CLICKED 替代自訂訊息。Set* 方法時行為為普通 Picture Control,不影響編譯。完整原始碼 MapHyperLink.h/cpp 可直接加入專案使用。