簡體   English   中英

MFC 如何更改 CLinkCtrl 的鏈接文本顏色?

[英]MFC How to change link text color of CLinkCtrl?

在這篇文章中,我通過放入OnInitDialog事件來設置代碼:

LITEM* pItem = new LITEM;

pItem->iLink = 0; // Url index is 0    

//LIF_ITEMINDEX is required for iLink, LIF_STATE is required for modifing state
pItem->mask = LIF_ITEMINDEX | LIF_STATE;

//using LIS_DEFAULTCOLORS state
pItem->state = LIS_ENABLED | LIS_FOCUSED | LIS_DEFAULTCOLORS;
pItem->stateMask = LIS_ENABLED | LIS_FOCUSED | LIS_DEFAULTCOLORS;

// Send the LM_SETITEM MESSAGE with pItem
HWND m_hWnd=nil; GetDlgItem(IDC_lbstackoverflow, &m_hWnd);

來自OnCtrlColor事件:

pDC->SetTextColor(RGB(255, 0, 0));
pDC->SetBkColor(normal);
pDC->SetDCBrushColor(RGB(255, 255, 255));
return (HBRUSH)GetStockObject(DC_BRUSH);

代碼運行后,我的結果是:

在此處輸入圖片說明

如果我點擊它,現在它可以工作:

在此處輸入圖片說明

但是,如何更改文本顏色?

您可能沒有正確設置控制狀態。

請嘗試 MFC 方式(它對我有用)。 添加到您的對話框類:

CLinkCtrl syslink;

將其連接到鏈接的資源 ID:

void CMFCApplication4Dlg::DoDataExchange(CDataExchange* pDX)
{
    CDialogEx::DoDataExchange(pDX);
    DDX_Control(pDX, IDC_SYSLINK1, syslink);
}

並在OnInitDialog添加:

syslink.SetItemState(0, LIS_ENABLED | LIS_FOCUSED | LIS_DEFAULTCOLORS, 
    LIS_ENABLED | LIS_FOCUSED | LIS_DEFAULTCOLORS);

我在OnCtlColor看到帶有您代碼的紅色鏈接。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM