2011-04-19 87 views
0

我想在我的首選項對話框中添加一個類似於mspaint的顏色選擇器。 enter image description here添加一個類似mspaint的顏色選擇器工具欄

這可能與MFC有關嗎?我使用的是VC6,因爲很久以前項目已經啓動了,現在它不能移植,所以我不能使用新的MFC類。

+0

當前版本的Paint(在Windows 7上)已將顏色選擇器作爲其Ribbon控件的一部分。在VC 6中,您無法使用功能區,創建一個功能將是令人難以置信的工作量。我不認爲任何第三方Ribbon控件庫仍然支持VC 6.但是,您可以*創建類似Paint *早期*版本中的顏色選擇器工具欄。其實很簡單。你能接受嗎? – 2011-04-19 15:07:07

+0

是的,當然,我正在使用這個截圖,因爲我在Win7上。我其實並不需要任何幻想,而且我可能會選擇一個顯示CColorDialog的矩形(它也可用於VC6),當你點擊它時,我只是問這個問題,以防萬一有一個共同的控制因爲我不知何故錯過了。 – sashoalm 2011-04-19 15:11:13

回答

1

這個謎題有幾個部分。首先是類似多行工具欄的功能。第二個是當你點擊「編輯顏色」時被調用的顏色選擇器。

第一個可以用多行工具欄模仿(一定程度)。我似乎回想起VC6的CToolBar在多行工具欄中存在一些問題,但我不確定這是否可能在服務包中得到修復(它看起來可能有問題,但我不確定) 。如果你不喜歡那樣(它看起來不像原來的那樣),你幾乎會堅持創建你自己的控件並把它放到一個CToolBar中。只要你只想按照原樣模仿控件,這並不會非常困難 - 你基本上將控件傳遞給一組顏色數字,當有點擊時,它會發送通知消息與所選的顏色編號(或顏色編號的索引,如果您願意)。只要你堅持固定的佈局,那麼數學就相當容易,但如果你想支持改變佈局,它可能會很困難。

對於第二部分,一個好的起點可能是Hans Deitrich的XColorSpectrumCtrl

+0

我也不記得是否有一個修復多行工具欄的服務包,但是將對話框嵌入到工具欄中完美地工作在VC 6中。如果我沒有記錯,這是Paint的前版本創建顏色選擇器,以及。即使在較舊的項目中,這也是相當微不足道的。 – 2011-04-20 03:29:40

0

這絕對有可能。但是,除非您可以找到一些現有的代碼,否則您可能需要實現所有者自己繪製以獲得此外觀。

有一個顏色選擇器控件,CMFCColorPickerCtrl,我沒有用過。但我不相信它是做你正在尋找的東西。

+0

我正在使用VC6,不幸的是,項目絕對無法移植到較新的Visual Studio。 – sashoalm 2011-04-19 15:02:49

+0

@satuon:有沒有想過在你的問題中提到這樣的細節?正如你剛纔觀察到的那樣,它確實會改變答案。 – 2011-04-19 15:04:36

+0

再說一次,你絕對可以做到這一點。但是你可能必須自己寫。請注意,您發佈的圖片是功能區欄的一部分。如果您使用的是VC6,那麼您甚至不需要使用色帶控件。這意味着它可能會很多工作。 – 2011-04-19 15:04:47