自绘热点按钮
自繪熱點按鈕
一、1.在VS2010中新建MFC對話框工程,命名“Test”。
2.刪除對話框上所有控件,然后在對話框上添加一個按鈕,一個組合框,一個編輯框,更改按鈕ID為IDC_TRANSFORM_BTN,更改編輯框ID為IDC_EDIT2。
3.在工作區窗口選擇RecourceView選項卡,向對話框中依次導入下列4個位圖資源(IDB_BITMAP1…IDB_BITMAP4)
4.創建以CButton類為基類的派生類CHotButton
5.在CHotButton類的頭文件中聲明變量,
6.在CHotButton類的源文件中的構造函數初始化變量
7. 利用類向導在CHotButton類中添加SetCBitmap函數,在該函數中設置使用的CBitmap類對象;并添加DetachCBitmap函數
7.利用類向導在CHotButton類中添加PreSubclassWindow虛方法,在該方法中設置定時器
7.利用類向導在CHotButton類中處理WM_TIMER消息,在該消息的處理函數中獲得鼠標的位置,并判斷鼠標是否在按鈕控件區域中
8.利用類向導在CHotButton類中調用DrawItem方法,在按鈕中繪制圖片
9.利用類向導在CHotButton類中處理WM_LBUTTONDOWN消息,在按鈕被按下時將m_IsPressed值設為TRUE
10.利用類向導在CHotButton類中處理WM_LBUTTONUP消息,在按鈕彈起時將m_IsPressed值設為FALSE
11.在對話框頭文件中聲明CBitmap類對象,并引用HotButton.h頭文件;為“轉換”按鈕控件關聯CHotButton類變量,打開按鈕控件屬性窗口,選擇Ownerdraw自繪屬性
12.在對話框頭文件中為編輯框控件關聯對象m_Edit2,聲明一個畫刷
13.在對話框源文件中的OnInitDialog()函數中添加
14.在對話框源文件中的OnPaint()函數中的if-else語句的else中添加
15.在對話框源文件中處理WM_CTLCOLOR消息
16.雙擊“轉換”按鈕,添加其單擊消息響應函數
正常效果圖如下:
熱點效果圖如下:
單擊“轉換”按鈕后,按鈕禁用效果:
http://download.csdn.net/detail/u013541325/8875441
總結
- 上一篇: 算法复习第五章贪心法
- 下一篇: 用C语言设置程序开机自启动