2013-02-21 228 views
0

我正在開發一個使用Embarcadero VCL C++ IDE for Windows OS的GUI應用程序。作爲這個項目的一部分,我必須改變按鈕相對於外部狀態的顏色。 我知道windows32 API不允許改變按鈕的顏色。 可否請您提示我,如何更改按鈕顏色?如何更改按鈕顏色?

+0

你可能想用winapi或者其他東西來標記這個,所以人們知道你在使用什麼API。 – Cornstalks 2013-02-22 02:25:39

回答

0

是否要更改按鈕的背景顏色或其文本顏色?

由於windows已經使用了一段時間的視覺主題,如果你有commctrl加載幷包含清單文件,該按鈕將使用默認(當前)主題繪製。 (a)自定義繪製背景(b)在正常繪製過程中改變文本顏色(c)繪製沒有主題的按鈕(即繪製「平面」按鈕)。

您可以簡單地繪製位圖按鈕,根據按鈕的狀態更改位圖。您也可以使用單個位圖,根據狀態使用HSL或HSV色彩空間進行着色。

至於平面類型的按鈕,我認爲你可以改變它的背景顏色,就像你可以改變文本的顏色一樣 - 通過在標準繪製過程中插入和改變3D_FACE的顏色(或不管它是什麼,我忘了)隨便你想要什麼。

如果你看看Windows XP附帶的計算器,你可以看到一個改變文本顏色的例子。

CodeProject.com可能有一堆文章,這將有助於這項努力。 :)

+0

感謝您的建議。 – srvolatile 2013-02-25 11:59:12

+0

我希望更改按鈕的背景顏色(NOT TEXT)。我創建了小的彩色位圖,並嘗試在位圖按鈕上顯示它。但是,這個位圖圖片沒有覆蓋整個按鈕。我會研究你的建議。再次感謝您的回覆。 – srvolatile 2013-02-25 12:11:35