古詩詞大全網 - 成語故事 - 真心求教,WTL如何給按鈕控件添加?

真心求教,WTL如何給按鈕控件添加?

實現方法:

1. 首先繼承CButton模板類及CCustomDraw的模板類。

2. 在消息泵中,將CButton的自繪消息,加入至CCustomDraw消息鏈中,那樣妳就可以收到兩個自繪通知了,他們是OnPreErase和OnPrePaint。

這兩個自繪通知,會以函數的形式通知妳,類似於虛函數:

我們會在OnPreErase裏,執行自繪操作,所以返回CDRF_SKIPDEFAULT,以讓窗口跳過默認自繪。

3. 在OnPreErase裏,我們需要獲取按鈕的四種狀態:正常、熱點、選中和禁用。默認是正常狀態,所以我們只用處理:熱點、選中和禁用。OnPreErase也會返回自繪的HDC圖形描繪句柄,這也是我們需要用到的。

4. 判斷當前按鈕狀態時需要註意:熱點和選中這兩個狀態。當鼠標選中了按鈕,那麽按鈕會返回CDIS_SELECTED的狀態給妳,但由於鼠標這時還停留在按鈕上面,那麽反饋的狀態裏面也包含了CDIS_HOT在裏面。