【#文档大全网# 导语】以下是®文档大全网的小编为您整理的《逃跑按钮》,欢迎阅读!
1. 建立一个基于“Dialog Based”的对话框
2. 删除对话框上面所有的按钮,然后添加一个按钮,将其属性Caption改为“你能抓住我
吗?”,复制一次此按钮。
3. 新建一个CNewButton新类,基类:CButton,来捕获鼠标移动的消息。
4. 对话框中的两个按钮关联一个成员变量,变量名分别为m_btn1和m_btn2,变量类型均
为CNewButton,如果在CTestDlg类中想要识别这种类型的话,必须在CTestDlg类中包含这个新类的头文件。
5. 下面让CNewButton类捕获鼠标移动的消息,在CNewButton上单击 鼠标右键,选择【Add
Windows Message Handler、、、、、】菜单命令,在此对话框的左边选中WM_MOUSEMOVE,然后单击【Add and Edit】按钮。
6. 下面就在OnMouseMove函数中实现一个按钮隐藏,另一个按钮显示的功能,一个按钮
的隐藏以参数SW_HIDE来调用ShowWindow函数,将其隐藏。可是要显示另一个按钮,必须要知道另一个按钮所关联的那个对象的内存地址,然后才能调用该对象的ShowWindow函数,将其显示出来。为了在一个按钮对象中获取另一个按钮控件对象的地址,最简单的方式就是在CNewButton类在添加一个CNewButton*类型的成员变量:m_pBtn。这样,当用CNewButton类去实例化CTestDlg类的成员变量m_btn1和m_btn2时,这两个对象内部就都有了一个m_pBtn成员变量,我们可以让这两个对象内部的m_pBtn变量分别保存对方的首地址,相对于这两个对象互相交换了自己的首地址。 7. 下面继续完善代码在CTestDlg类中把m_btn1和m_btn2这两个对象的首地址交换一下,
可以在CTestDlg类的OnInitDialog函数的最后,但要在return语句之前添加以下代码:
8. 然后在CNewButton类的OnMouseMove函数中,先让对象自己隐藏起来,然后调用成
员m_pBtn的ShowWindow函数将对方显示出来,代码如下;
最后编译运行就OK了,如果让按钮看起来更完美,可以把第一个按钮的Visible属性去掉。
本文来源:https://www.wddqxz.cn/e219831b32126edb6f1aff00bed5b9f3f90f726a.html