Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2621681
  • 博文数量: 315
  • 博客积分: 3901
  • 博客等级: 少校
  • 技术积分: 3640
  • 用 户 组: 普通用户
  • 注册时间: 2011-05-08 15:32
个人简介

知乎:https://www.zhihu.com/people/monkey.d.luffy Android高级开发交流群2: 752871516

文章分类

全部博文(315)

文章存档

2019年(2)

2018年(1)

2016年(7)

2015年(32)

2014年(39)

2013年(109)

2012年(81)

2011年(44)

分类: Windows平台

2013-08-11 17:19:13

    按照老师的做法,确实挺简单,实现逃跑按钮无非就是两个按钮:一个按钮显示,另一个按钮隐藏,就可以实现逃跑按钮(当然比较简单),复杂的应该是随机变化位置,就是调用setWindowPos函数,然后构造随机偏移量啥的,自己可以试试!!!
   1>新建一个对话框应用程序,删除上面的默认按钮,自定义添加两个相同的按钮;
   2>新建一个类 CRunButton ,基类是CButton,然后添加一个WM_ONMOUSEMOVE事件,当鼠标划过按钮时就会调用这个接口;
   3>回到界面设计窗口,为两个按钮添加成员变量,类型是我们自定义的按钮类型,之后xxxDlg类头文件会看到:
            CRunButton m_ptn2;
            CRunButton m_ptn1;
   4>CRunButton类中添加类对象指针:
             CRunButton * m_pBtn;
   5>之后回到xxxxDlg类下的OnInitDlg事件中:
            // TODO: Add extra initialization here
            ///< 两个按钮互相交换指针,当鼠标划过按钮1时,此时调用的虽然是按钮1的类的事件,但是显示的确实按钮2;反之;因此就实现了简单的逃跑按钮
            m_ptn2.m_pBtn = &m_ptn1;
            m_ptn1.m_pBtn = &m_ptn2;
    6>在WM_ONMOUSEMOVE事件中显示按钮:
            void CRunButton::OnMouseMove(UINT nFlags, CPoint point) 
            {
                // TODO: Add your message handler code here and/or call default
                ///< 首先隐藏自己
                ShowWindow(SW_HIDE);
                ///< 显示他人
                m_pBtn->ShowWindow(SW_SHOW);
                
                CButton::OnMouseMove(nFlags, point);
            }

   


阅读(2536) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~