效果演示

特性亮點
- 繼承
CButton,設置 Owner Draw 模式即用。
- 鼠標拾取器可吸取屏幕任意像素顏色(修正 DW 近似色缺陷)。
- 顏色改變通過
BN_CLICKED 通知父窗口。
- 提供
GetColor(COLORREF&) 與 GetColor(CString&)(返回 #RRGGBB 格式)。
- 自動綁定:
SetBuddy(HWND) 可將選中顏色直接寫入編輯框。
集成步驟
- 拷貝
ColorPicker.h/cpp 到專案並添加。
- 資源編輯器添加按鈕,勾選
Owner Draw,添加 Control 變量 m_btnColor1。
- 頭文件將變量類型改為
CColorPicker,包含頭文件。
- 為按鈕添加
BN_CLICKED 處理函數,調用 GetColor 獲取顏色。
- (可選)調用
SetBuddy(GetDlgItem(IDC_EDIT_COLOR)->m_hWnd) 實現自動寫入。
代碼示例
void CColorPickerDemoDlg::OnButton1()
{
COLORREF clr = m_btnColor1.GetColor();
CString str; m_btnColor1.GetColor(str); // str = "#FF8000"
// 使用顏色...
}