VC怎么实现鼠标放在位图按钮上时,按钮显示另外一张图片

VC如何实现鼠标放在位图按钮上时,按钮显示另外一张图片?
我定义了一个CBitmap m_Bitmap;按网上介绍的几种办法实现了 弹起显示一个图片,按下显示另一个图片,现在我想实现鼠标放在按钮上时,按钮就显示按下时的那个图片,应该怎么实现呢?用ONMOUSEMOVE吗?怎么用呢?最好有例子参考一下的,帮帮忙吧!

------解决方案--------------------
获得按钮的坐标范围

OnMouseMove,在这个范围内,则调用显示图片的函数,否则return
------解决方案--------------------
CBitmapButton类
C/C++ code

CBitmapButton* pmyButton = new CBitmapButton();

// Create the bitmap button (must include the BS_OWNERDRAW style).
pmyButton->Create(NULL, WS_CHILD|WS_VISIBLE|BS_OWNERDRAW, 
   CRect(10,10,100,100), pParentWnd, 1);

// Load the bitmaps for this button.
pmyButton->LoadBitmaps(IDB_UP, IDB_DOWN, IDB_FOCUS, IDB_DISABLE);

------解决方案--------------------
你搜个CHoverButton 现成。 看看它的源码就行了。 

其实就是在DrawItem里实现了3态
------解决方案--------------------
类CBitmapButton用于创建用位图而不是文本做标签的按钮控件。CBitmapButton对象最多可包括4个位图,分别代表按钮所处的不同状态:未按下(或正常)、按下(或选中)、获得焦点和被禁止存取。只有第一个位图是必须的,其它三个可以不提供。

在创建一个位图按钮控件时,设置BS_OWNERDRAW则指明按钮是自定义的(用户自己绘制的)。这样,Windows就会为该按钮发送WM_MEASUREITEM和WM_DRAWITEM消息,由框架处理这些消息并维护按钮的外观。
在窗口的客户区创建一个位图按钮的步骤如下:
1. 为按钮创建1到4个位图。
2. 构造CBitmapButton对象。
3. 调用Create函数创建Windows按钮控件,并把它加到CBitmapButton对象上。
4. 调用成员函数LoadBitmaps加载位图资源。
  
在对话框控件中包含位图按钮的步骤如下:
1. 为按钮创建1到4个位图。
2. 创建一个对话框模板,其中有一个自定义的按钮放在需要位图按钮的位置。模板中按钮的大小无关紧要。
3. 把按钮的标题设置为“MYIMAGE”一类的字符串,并为按钮定义一个类似于IDC_MYIMAGE的代号。
4. 在应用的资源脚本中,分别为每个给该按钮创建的图像一个ID,ID的值为在步骤3中的标题后加上如下的一个字母——U、D、F或X,分别代表正常、按下、获得焦点和禁止存取状态下的按钮。例如,标题设为“MYIMAGE”时,ID就应该是字符串("MYIMAGEU"、"MYIMAGED"、"MYIMAGEF"和"MYIMAGEX")。位图的ID必须用引号括起来,否则资源编辑器就会为资源赋上一个整数值,MFC在加载图像时就会失败。
5. 在应用的对话框类(从类CDialog继承而来)中加上一个CBitmapButton成员对象。
6. 在CDialog对象的OnInitDialog例程中调用CBitmapButton对象的AutoLoad函数,参数是按钮的ID和CDialog对象的this指针。 
 
如果想处理Windows的通知消息,如位图按钮控件发给它的父对象(通常是从CDialog继承来的)的BN_CLICKED消息,就要在从CDialog继承来的对象中加入消息映射入口以及处理每个消息的成员函数。CBitmapButton对象发出的通知和CButton对象发出的通知一样。