正在做一個vC++/MFC對話框應用程序中的計算器程序。你好,我想改變對話框中按鈕的前景和背景顏色。我不知道,如何改變。 如果任何機構有想法,請以相關的代碼或示例向我建議。如何在MFC/VC++對話框應用程序中更改按鈕的前景色(即文本或標題)
basu_sagar
正在做一個vC++/MFC對話框應用程序中的計算器程序。你好,我想改變對話框中按鈕的前景和背景顏色。我不知道,如何改變。 如果任何機構有想法,請以相關的代碼或示例向我建議。如何在MFC/VC++對話框應用程序中更改按鈕的前景色(即文本或標題)
basu_sagar
有沒有簡單的方法在經典的VC/MFC應用程序要做到這一點,按鈕顏色總是系統定義。您必須使用自定義控件,或者創建一個所有者繪製按鈕。處理WM_CTLCOLOR並返回不同的畫筆不適用於按鈕。
編輯:
這是an example更換按鈕控制人已經建立了封裝所有者繪製代碼到一個類來解決這個問題。
此鏈接有您正在尋找的信息:CWnd::OnCtlColor
可以使用CMFCButton。儘管你可以直接在你的資源文件中說一個按鈕是這種類型的,但我不推薦它,因爲它在rc文件上添加了一個不可維護的十六進制文本。如果你使用幾個rc文件,每種語言都有一個,那真是太噁心了!
讓我們走吧。在你的窗體類,聲明一個成員
CMFCButton m_button1;
的DoDataExchange中應該是這樣的:
void MyDialog::DoDataExchange(CDataExchange* pDX)
{
__super::DoDataExchange(pDX);
DDX_Control(pDX, IDC_BUTTON1, m_button1);
// ...
}
那麼OnInitDialog中應該是這樣的:
BOOL CMyDialog::OnInitDialog()
{
if(!__super::OnInitDialog())
return FALSE;
m_button1.SetFaceColor(RGB(0,0,255));
m_button1.SetTextColor(RGB(0,255,0));
m_button1.SetHotTextColor(RGB(255,0,0));
return TRUE;
}
我貼將以此爲代碼藍色按鈕,帶有綠色文本,並且當光標懸停在按鈕上時,其文本將變爲紅色。