自绘热点按钮
自繪熱點(diǎn)按鈕
一、1.在VS2010中新建MFC對話框工程,命名“Test”。
2.刪除對話框上所有控件,然后在對話框上添加一個按鈕,一個組合框,一個編輯框,更改按鈕ID為IDC_TRANSFORM_BTN,更改編輯框ID為IDC_EDIT2。
3.在工作區(qū)窗口選擇RecourceView選項(xiàng)卡,向?qū)υ捒蛑幸来螌?dǎo)入下列4個位圖資源(IDB_BITMAP1…IDB_BITMAP4)
4.創(chuàng)建以CButton類為基類的派生類CHotButton
5.在CHotButton類的頭文件中聲明變量,
6.在CHotButton類的源文件中的構(gòu)造函數(shù)初始化變量
7. 利用類向?qū)г贑HotButton類中添加SetCBitmap函數(shù),在該函數(shù)中設(shè)置使用的CBitmap類對象;并添加DetachCBitmap函數(shù)
7.利用類向?qū)г贑HotButton類中添加PreSubclassWindow虛方法,在該方法中設(shè)置定時器
7.利用類向?qū)г贑HotButton類中處理WM_TIMER消息,在該消息的處理函數(shù)中獲得鼠標(biāo)的位置,并判斷鼠標(biāo)是否在按鈕控件區(qū)域中
8.利用類向?qū)г贑HotButton類中調(diào)用DrawItem方法,在按鈕中繪制圖片
9.利用類向?qū)г贑HotButton類中處理WM_LBUTTONDOWN消息,在按鈕被按下時將m_IsPressed值設(shè)為TRUE
10.利用類向?qū)г贑HotButton類中處理WM_LBUTTONUP消息,在按鈕彈起時將m_IsPressed值設(shè)為FALSE
11.在對話框頭文件中聲明CBitmap類對象,并引用HotButton.h頭文件;為“轉(zhuǎn)換”按鈕控件關(guān)聯(lián)CHotButton類變量,打開按鈕控件屬性窗口,選擇Ownerdraw自繪屬性
12.在對話框頭文件中為編輯框控件關(guān)聯(lián)對象m_Edit2,聲明一個畫刷
13.在對話框源文件中的OnInitDialog()函數(shù)中添加
14.在對話框源文件中的OnPaint()函數(shù)中的if-else語句的else中添加
15.在對話框源文件中處理WM_CTLCOLOR消息
16.雙擊“轉(zhuǎn)換”按鈕,添加其單擊消息響應(yīng)函數(shù)
正常效果圖如下:
熱點(diǎn)效果圖如下:
單擊“轉(zhuǎn)換”按鈕后,按鈕禁用效果:
http://download.csdn.net/detail/u013541325/8875441
總結(jié)
- 上一篇: 算法复习第五章贪心法
- 下一篇: Android studio小问题解决