MyMFC(8)逃跑按钮 CNewButton

#include "stdafx.h"
#include "NewButton.h"


CNewButton::CNewButton()
: m_pBtn(NULL)
{
}


CNewButton::~CNewButton()
{
}
BEGIN_MESSAGE_MAP(CNewButton, CButton)
	ON_WM_MOUSEMOVE()
END_MESSAGE_MAP()

/******************************************************************************************************************************/
    //要实现这种“逃跑”按钮,可以通过捕获鼠标移动的消息,并在此消息相应函数中让这个按钮隐藏或显示来实现移动的假象
    //那让谁来捕获鼠标移动的消息呢?如果让对话框CMyMFC3DialogDlg类来捕获,则一旦鼠标在对话框中移动,程序就会让按钮上下移动,这当然不是我们
    //想实现的功能。我们想要的是当鼠标移动到按钮上时,按钮才上下移动。也就是说,###鼠标移动的消息应该有按钮窗口来捕获###,为此,可以创建
    //一个从CButton类派生的新类,然后将按钮控件与这种新类型的变量相关联。(即,为按钮关联的成员变量的类型应是所建这个新类的类型


void CNewButton::OnMouseMove(UINT nFlags, CPoint point)  //为按钮窗口添加WM_MOUSEMOVE消息
{
	// TODO:  在此添加消息处理程序代码和/或调用默认值

	ShowWindow(SW_HIDE);  //隐藏按钮
	m_pBtn->ShowWindow(SW_SHOW);  //显示按钮
	//并且要将其中一个按钮属性中的Visible设置为FALSE,这样感觉才够真实。

	CButton::OnMouseMove(nFlags, point);
}

你可能感兴趣的:(MFC)