首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

MFC 按鈕背景色修改終極方案:CMFCButton 完全指南

     編輯:關於C語言

MFC 原生 CButton 修改背景色極其繁瑣,網上流傳的 OnCtlColor、OnEraseBkgnd 重寫大多失效。VS2010 引入的 CMFCButton 原生支援豐富視覺定製,本文演示動態創建、顏色設定、圖片背景、滑鼠手勢、工具提示等核心功能。

動態創建替換原生按鈕

對話框編輯器放置 Button(IDC_BUTTON_TEST),OnInitDialog 中動態創建 CMFCButton 覆蓋:

CMFCButton* button = new CMFCButton;
button->Create(_T("Test Button"), WS_VISIBLE,
    CRect(5, 5, 80, 50), this, IDC_BUTTON_TEST);

注意:示例為簡化直接 new 會洩漏記憶體,實際專案應用成員變量管理生命週期。原生按鈕屬性設 Visible=False 隱藏,動態按鈕共享同一資源 ID 實現「影分身」效果。

雙按鈕共存

隱藏原生按鈕後

核心視覺定製 API


// 文字、顏色
button->SetWindowTextW(_T("強制更改"));
button->SetFaceColor(RGB(153, 217, 234)); // 背景色
button->SetTextColor(RGB(255, 255, 255)); // 普通文字色
button->SetTextHotColor(RGB(63, 72, 204)); // 滑鼠懸停文字色

// 位置調整
button->MoveWindow(50, 50, 100, 70);

// 滑鼠手勢與工具提示
button->SetMouseCursorHand(); // 懸停變手型
button->SetTooltip(_T("俺是提示"));

圖片背景按鈕

導入位圖資源 (IDB_BITMAP1),創建第二個按鈕:

CMFCButton* button1 = new CMFCButton;
button1->Create(_T(""), WS_VISIBLE, CRect(160, 15, 280, 150), this, IDC_BUTTON_TEST);
button1->SetImage(IDB_BITMAP1); // 直接設定圖片

圖片與顏色按鈕效果

運行效果:滑鼠經過文字按鈕變藍色、圖片按鈕顯示位圖,均具手型游標與工具提示。

更多可定製屬性

CMFCButton 還支援:圖片對齊、按下/禁用狀態圖片、邊框樣式、文字偏移、透明度、動畫效果等。建議查閱 MSDN 文檔挖掘更多潛力。

本文出自「正面旺得福反面泰瑞寶」博客,轉載請保留出處:原文鏈接

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved