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