Windows-对话框编程基本技术(2)
2016-05-28 08:12
232 查看
Windows-对话框编程基本技术(2)
本次主要介绍对话框的2个应用。
一 逃跑按钮的实现
简介:在对话框上放置两个按钮,当鼠标移动到一个按钮上时,这个按钮隐藏,相关的另一个按钮显示。
效果如下:
鼠标焦点移动到这个按钮上
下面是代码分析:
1.创建一个基于Dialog的项目,利用向导来设置。
2.在对话框上放置两个Button,设置相关的属性ID
3.我们要对这两个按钮操作,就需要创建对应的按钮类,所以我们利用类向导创建新的按钮类CCatchButton
4.在对话框类中加上两个按钮的成员变量
5.在新建的CCatchButton类中增加一个本类的按钮指针,为了之后的显示和隐藏按钮
6.在项目的对话框主类中的OnInitDialog()中加上按钮的初始化,我们需要在对话框创建之前对两个成员变量进行初始化。
7.为新建的CCatchButton类添加鼠标移动事件响应。
保存对方的地址,请看下图:
保存对方的按钮地址是为了,显示自己的同时能够通过m_pBtn指针来隐藏另一个按钮。
二 对话框属性表单
实现在一个对话框中实现多个属性表单的切换。
1.新建一个Prop的单文档项目
2.为了显示属性表单,我们需要创建三个属性表单资源
第一个
第二个
第三个,需要取消ComboBox的sort选项
2.在属性表单上面双击添加对应的MFC类
3.添加一个属性表单类来管理这3个属性页,并添加3个属性页的成员变量
4.之后我们需要在每个属性页中重写我们需要的2个虚函数来自定义属性页的功能
具体实现后面会给资料链接
5.在View类中我们需要定义成员变量来接收属性表单完成后的设置
6.在View类中的OnDraw中重绘客户区
7.最终的效果
完成
三 总结
下面是资料,大家可以下载运行测试。
https://yunpan.cn/cS5VakC5ZBGgt 访问密码 afe2
本次主要介绍对话框的2个应用。
一 逃跑按钮的实现
简介:在对话框上放置两个按钮,当鼠标移动到一个按钮上时,这个按钮隐藏,相关的另一个按钮显示。
效果如下:
鼠标焦点移动到这个按钮上
下面是代码分析:
1.创建一个基于Dialog的项目,利用向导来设置。
2.在对话框上放置两个Button,设置相关的属性ID
3.我们要对这两个按钮操作,就需要创建对应的按钮类,所以我们利用类向导创建新的按钮类CCatchButton
4.在对话框类中加上两个按钮的成员变量
#include "CatchButton.h"//不要忘记导入头文件 public: CCatchButton m_btn1; CCatchButton m_btn2;
5.在新建的CCatchButton类中增加一个本类的按钮指针,为了之后的显示和隐藏按钮
public: CCatchButton* m_pBtn;
6.在项目的对话框主类中的OnInitDialog()中加上按钮的初始化,我们需要在对话框创建之前对两个成员变量进行初始化。
//保存对方的指针 #if 1 m_btn1.m_pBtn = &m_btn2; m_btn2.m_pBtn = &m_btn1; #endif
7.为新建的CCatchButton类添加鼠标移动事件响应。
void CCatchButton::OnMouseMove(UINT nFlags, CPoint point) { // TODO: 在此添加消息处理程序代码和/或调用默认值 //方法一 使用ShowWindow函数实现 #if 0 ShowWindow(SW_HIDE);//隐藏当前鼠标标记的按钮 m_pBtn->ShowWindow(SW_SHOW);//显示另一个指针指向的按钮 #endif //方法二 使用SetWindowPos函数来实现,查看该API的MSDN的定义 #if 1 SetWindowPos(nullptr, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_HIDEWINDOW); m_pBtn->SetWindowPos(nullptr, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_SHOWWINDOW); #endif CButton::OnMouseMove(nFlags, point); }
保存对方的地址,请看下图:
保存对方的按钮地址是为了,显示自己的同时能够通过m_pBtn指针来隐藏另一个按钮。
二 对话框属性表单
实现在一个对话框中实现多个属性表单的切换。
1.新建一个Prop的单文档项目
2.为了显示属性表单,我们需要创建三个属性表单资源
第一个
第二个
第三个,需要取消ComboBox的sort选项
2.在属性表单上面双击添加对应的MFC类
3.添加一个属性表单类来管理这3个属性页,并添加3个属性页的成员变量
4.之后我们需要在每个属性页中重写我们需要的2个虚函数来自定义属性页的功能
具体实现后面会给资料链接
5.在View类中我们需要定义成员变量来接收属性表单完成后的设置
6.在View类中的OnDraw中重绘客户区
7.最终的效果
完成
三 总结
下面是资料,大家可以下载运行测试。
https://yunpan.cn/cS5VakC5ZBGgt 访问密码 afe2
相关文章推荐
- Python学习 (七 错误、调试和测试)
- struts2的中文乱码处理,struts出现中文乱码怎么处理.如何解决struts的中文乱码问题?
- Qt4下创建自定义窗体
- logback常用配置详解(一)<configuration> and <logger>
- Java 导出 execl
- c语言中char的-128是怎么计算的
- 使用ffmpeg实现转码样例(代码实现)
- 点阵图输出代码及结果
- logback 常用配置详解(序)logback 简介
- Metal 着色语言编程指南 二二
- Delphi的学习笔记十四——接口
- Delphi的学习笔记十三——属性
- Delphi的学习笔记十二——方法
- Delphi的学习笔记十一——类
- 【编程马拉松】【002-分遗产】
- Java Abstract class( 抽象类 ) && Interface( 接口 )
- python之路(sed,函数,三元运算)
- leetcode #46 in cpp
- Java (Abstract Method)抽象方法、(Abstract Class)抽象类
- leetcode #45 in cpp