逃跑按钮

新建一个对话框程序
界面设计如下:
设置其中一个按钮属性: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);
}

你可能感兴趣的:(孙鑫VC视频笔记)