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

C++ Builder 從 TColor 解析 RGB 亮度並修改視窗背景色

     編輯:關於C++

使用 GetRValue/GetGValue/GetBValue 宏提取顏色分量

TColor 內部為 RGB 值,可用 Win32 宏提取各分量 (0-255),修改後重新組合指派回 Color 屬性。

範例:按鈕點擊逐漸改變表單背景色

void __fastcall TForm1::Button1Click(TObject *Sender)
{
    BYTE nRed   = GetRValue(Color);
    BYTE nGreen = GetGValue(Color);
    BYTE nBlue  = GetBValue(Color);

    nRed   += 10;
    nBlue  -= 10;
    nGreen = static_cast(nGreen * 1.05);

    Color = (TColor)RGB(nRed, nGreen, nBlue);
}

注意事項

  • 三個 Get*Value 實為 C 風格巨集 (定義於 wingdi.h),非類型安全,傳入錯誤型別不會警告。
  • 回傳值為 BYTE (0-255);若運算結果超出範圍,RGB 宏只取低 8 位元自動截斷。
  • 範例中將表單 Color 設為非系統色 (如 clBlue, clNavy) 才能明顯觀察變化。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved