在 VS (MFC) 專案中需要一個調色板功能,希望簡化開發,不想從零撰寫 C++ 繪圖邏輯。
CColorDialogMFC 封裝了 Windows 共用對話方塊 CColorDialog,幾行程式碼即可呼叫系統內建調色板,支援自訂顏色、RGB/HSL 輸入、吸管取色等完整功能。
void CMyDialog::OnBtnChooseColor() {
// 1. 建立調色板對話框,可傳入預設顏色、旗標、父視窗
CColorDialog dlg(RGB(255, 0, 0), CC_FULLOPEN | CC_RGBINIT, this);
// 2. 顯示模態對話框
if (dlg.DoModal() == IDOK) {
// 3. 取得使用者選擇的顏色
COLORREF chosenColor = dlg.GetColor();
// 這裡處理 chosenColor,例如更新 UI、存入設定等
TRACE(_T("選擇顏色: R=%d G=%d B=%d\n"),
GetRValue(chosenColor), GetGValue(chosenColor), GetBValue(chosenColor));
}
}
CColorDialog 衍生類,覆寫 OnInitDialog 並修改 m_cc.lpCustColors 指向自訂 COLORREF[16] 陣列。CMFCColorDialog (MFC Feature Pack) 或第三方庫(如 ColorPicker 控件)。善用系統現成對話框,能大幅減少開發與維護成本,且保證原生相容性。