我使用一些按鈕控件創建對話框窗口。我想要按鈕單獨着色。我搜索並找到了我認爲應該使用的內容WM_CTLCOLORBTN Message。如何獲取畫筆的句柄,Win32 C++
如上所述,返回值應該是「刷柄」。
我可以創建一個刷子,例如像這樣:
HBRUSH blueBrush=CreateSolidBrush(RGB(0,255,0));
,但我怎麼手柄回到這個刷?
編輯:我的消息處理函數定義爲
LRESULT CALLBACK ClientDlgProc(...)
,如果我嘗試返回blueBrush我得到這個錯誤:
錯誤C2440:「迴歸」:無法從「HBRUSH」轉換爲'LRESULT'
如果有人知道更好的着色我的按鈕的方式,請讓我知道。 – Moberg 2011-04-06 10:58:08
下面的答案是正確的,但請注意,您在此處有泄漏。您需要將HBRUSH存儲在對話框的某個地方以及之後的DestroyObject()中。通常它在WM_INITDIALOG中創建並在WM_DESTROY中銷燬。 – ymett 2011-04-06 11:09:35
我只是還沒有得到那麼多^^' – Moberg 2011-04-06 11:12:47