程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> 關於VC++ >> 類似Dreamweaver的顏色選擇器

類似Dreamweaver的顏色選擇器

編輯:關於VC++

一、前言

用過Dreamweaver的朋友一定對它的顏色選擇器留下深刻的印象,因為它確實相當好用,其中的一項比較實用的功能是可以選取屏幕上任意一點的顏色。筆者按此思路封裝了一個稱為CColorPicker的類實現了類似的功能,並修正了Dreamweaver顏色選擇器將屏幕上選取的顏色作近似處理的缺點。本文詳細介紹了CColorPicker類的使用方法,並提供示例工程供讀者參考。

下圖便是示例代碼的執行效果圖

二、CColorPicker的簡單介紹

CColorPicker類是從CButton派生的,可以像一般的按鈕一樣使用它。因為考慮到封裝性與使用的方便,其中的鼠標光標與色彩對話框都采用動態建立。該類提供自動綁定的功能,當選擇的顏色改變後通過BN_CLICKED事件通知父窗口,下面就讓我們來看看CColorPicker類的具體使用步驟吧!

三、具體使用步驟(以示例工程為例)

3.1 准備工作

創建ColorPickerDemo對話框MFC工程。

將本文代碼中提供的ColorPicker.h,ColorPicker.cpp兩個文件拷貝到您的工程目錄下,並加入到工程中。

3.2 利用資源編輯器在主對話框中加入ID為:IDC_BUTTON1的按鈕,在Style中設置其為Owner draw屬性。在CColorPickerDemoDlg類中為IDC_BUTTON1添加Control類別的成員變量(Member Variables)m_btnColor1,然後在ColorPickerDemoDlg.h中將CButton m_btnColor1;改為CColorPicker m_btnColor1;

並在ColorPickerDemoDlg.h中加上#include "ColorPicker.h"

編譯運行看看效果吧!

3.3 程序已經可以運行了,但如何得到色彩選擇器顏色改變的通知呢?在這裡按鈕的BN_CLICKED的單擊事件已經成了顏色改變的事件了。我們只要像添加按鈕單擊處理函數一樣即可添加顏色改變處理函數。

在處理函數裡我們可以通過COLORREF CColorPicker::GetColor()函數得到COLORREF類型的顏色值,或者通過void CColorPicker::GetColor(CString& strColor)函數直接得到型如#FFFFFF樣式的字符串。請看如下代碼:

void CColorPickerDemoDlg::OnButton1()
  { COLORREF m_clrBKColor = m_btnColor1.GetColor(); CString strColor; m_btnColor1.GetColor(strColor); }

3.4 自動綁定功能

假如您需要在選擇色彩後自動將顏色值寫入某個窗口,可以用void CColorPicker::SetBuddy(HWND hWnd)函數設置綁定的窗口,這一功能在自動設置編輯框文字時非常有用。

顏色選擇器CColorPicker就介紹到這裡了,願它能為您的程序增色,下回見吧!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved