1.加入xSkinButton .cpp 和xSkinButton .h 到工程;
2.在按鈕控件需要定義的地方加入xSkinButton .h頭檔案;
3.為按鈕添加一個CxSkinButton 類型的變量;
4,在資源視圖添加所需要的位圖:
NORMAL bitmap: 預設按鈕圖檔.
DOWN bitmap: 按下按鈕圖檔.
OVER bitmap:(可選) 滑過按鈕的圖檔. If NULL, NORMAL bitmap will be used.
DISABLED bitmap: (可選) 不可用時的圖檔. If NULL, NORMAL bitmap will be used.
FOCUS bitmap: (可選) 焦點時的圖檔. If NULL, NORMAL bitmap will be used.
MASK bitmap: (可選) 剪輯區域. If you don't use the MASK, the button will be a rectangular owner-draw control. The default transparent color is RGB(255,255,255).
5.在對話框的初始化函數裡面添加以下代碼:
BOOL CxSkinButtonDemoDlg::OnInitDialog()
{
// ...
m_btn1.SetTextColor(RGB(255 ,0 ,0 ));
m_btn1.SetToolTipText("Button1" );
m_btn1.SetSkin(IDB_B1NORM,IDB_B1DOWN,IDB_B1OVER,IDB_B1GRAY,
0 ,IDB_B1MASK,0 ,0 ,0 );
// ...
其他具體的就請看原文了。在具體使用中,我們要使得按鈕與位圖的大小一緻,自己不友善調整,如果這個CxSkinButton有CBitmapButton::SizeToContent()的功能就好了,于是我自己添加了這個函數。在xSkinButton.h頭檔案裡面加入以下:
public :
void SizeToContent();//增加自動調整
然後在xSkinButton.cpp裡面實作如下:
void CxSkinButton::SizeToContent()
ASSERT(m_bNormal.m_hObject != NULL);
CSize bitmapSize;
BITMAP bmInfo;
VERIFY(m_bNormal.GetObject(sizeof (bmInfo), &bmInfo) == sizeof (bmInfo));
VERIFY(SetWindowPos(NULL, -1 , -1 , bmInfo.bmWidth, bmInfo.bmHeight,
SWP_NOMOVE|SWP_NOZORDER|SWP_NOREDRAW|SWP_NOACTIVATE));
}
接着,我們隻要在在SetSkin()之後調用這個函數就可以了,如下:
m_btn1.SizeToContent();//自己添加的,非原作者的,在此聲明
效果如下:

對于圖檔給的示例源代碼将在下一篇給出。位址為:http://blog.csdn.net/akof1314/archive/2010/07/05/5714050.aspx