CBitButtonNL繼承自CButton控件類,能實現鼠標熱敏,顯示3d文字,可根據按鍵的聚焦、按下、熱態、失效等操作顯示不同按鍵位圖,達到動態效果。好東西要好好保存著,以備不時之需~
在工程中加入BitButtonNL.h和BitButtonNL.cpp文件,然后便可使用該類提供的函數進行操作。例如,在對話框類C***Dlg.cpp的OnInitDialog函數中可以添加如下代碼:
CBitButtonNL m_btnSearch;
CString strFontName = _T("宋體");

//set bitmap
m_btnSearch.SetBitmaps(
IDB_BITMAP_OTHER_NORMAL,
IDB_BITMAP_OTHER_DOWN,
IDB_BITMAP_OTHER_UP,
IDB_BITMAP_OTHER_NO); //按鈕的四種位圖
m_btnSearch.SetForceColor(RGB(0, 0, 0), RGB(0, 0, 0), RGB(0, 0, 0)); //文字顏色
m_btnSearch.SetSound(MAKEINTRESOURCE(IDR_WAVEMOVE), ::GetModuleHandle(NULL)); //聚焦聲音
m_btnSearch.SetSound(MAKEINTRESOURCE(IDR_WAVECLICK), ::GetModuleHandle(NULL), TRUE); //按下聲音
m_btnSearch.SizeToContent(); //按鈕自動適應第一個圖片大小
m_btnSearch.SetWindowText(TEXT("搜索")); //改變按鈕顯示文字
m_btnSearch.SetBtnCursor(IDC_CURSOR_HAND, FALSE); //按鈕鼠標類型
m_btnSearch.SetTextAlign(NL_ALIGN_CENTER, FALSE); //設置文字排列方式
//set font
m_btnSearch
.SetDrawText(TRUE, FALSE) //是否顯示按鈕文字
.SetFont3D(FALSE, 3, 2, FALSE) //顯示文字3d效果
.SetText3DBKColor(RGB(95, 95, 95)) //3d陰影顏色
.SetFontBold(TRUE, FALSE) //粗體
.SetFontSize(10, FALSE) //字體大小
.SetFontName(strFontName) //字體名稱
;
其中:
(1)IDB_BITMAP_OTHER_NORMAL、IDB_BITMAP_OTHER_DOWN、IDB_BITMAP_OTHER_UP、IDB_BITMAP_OTHER_NO分別是按鍵默認、按下、熱態、失效時的位圖資源ID;
(2)IDR_WAVEMOVE和IDR_WAVECLICK是.wav音頻資源ID;
(3)IDC_CURSOR_HAND是cursor資源ID。
源代碼如下:/Files/amazon/CBitButtonNL.rar