新建一个对话框程序
为两个按钮各关联一个控件变量,如图:
界面设计如下:

设置其中一个按钮属性:Visble=false
要实现的功能是:当鼠标移动到一个按钮时该按钮隐藏,另一个按钮显示
要想按钮捕获OnMouseMove()消息,要为按钮添加类
因为OnMouseMove()是CWnd类的成员函数
添加一个新类:CNewButton,基类为CButton
为两个按钮各关联一个控件变量,如图:



为CNewButton添加一个指针类型成员变量:
public:
CNewButton* m_pBtn;
在Dialog构造函数中,让两个按钮对象各自的成员指针指向另一个按钮:
m_btn1.m_pBtn=&m_btn2;
m_btn2.m_pBtn=&m_btn1;
为CNewButton类添加函数
void CNewButton::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
//当前按钮捕获到OnMouseMove()消息时,隐藏当前按钮
ShowWindow(SW_HIDE);
//显示另外一个按钮
//m_pBtn为当前按钮对象的指针,指向另一个按钮
->ShowWindow(SW_SHOW);
//以上两行代码相当于下面两行代码,省略了this
//this->ShowWindow(SW_HIDE);
//this->m_pBtn->ShowWindow(SW_SHOW);
CButton::OnMouseMove(nFlags, point);
}