MFC入门之二MFC基于对话框学习控件一

关于空控件更新:
在这里插入图片描述
在这里插入图片描述

1.对话框之模态和非模态窗口

Windows对话框分为两类:模态对话框和非模态对话框。

   模态对话框是这样的对话框,当它弹出后,本应用程序其他窗口将不再接受用户输入,只有该对话框响应用户输入,在对它进行相应操作退出后,其他窗口才能继续与用户交互。

   非模态对话框则是,它弹出后,本程序其他窗口仍能响应用户输入。非模态对话框一般用来显示提示信息等。

总结:
在这里插入图片描述

模态窗口创建

1.在主窗口中添加一个按钮,设置“Caption”为模态对话框,修改其名称。
2.插入窗口:右键点击Dialog,选择插入dialog,在窗口中添加按钮。
.
在这里插入图片描述
选中新建窗口,更改ID为IDD_EXEC,如下图所示:
在这里插入图片描述
3.在IDD_EXEC窗口中,右键点击窗口,添加类,设置类的类名为CDlgExec。
4。添加点击触发事件:在主窗口中,点击模态对话框按钮,在属性栏中点击闪电按钮添加事件,如下图所示:
在这里插入图片描述
或者右键点击模态对话框,添加点击触发事件,如下图所示:
在这里插入图片描述
最好的方法是双击模态对话框,添加点击触发事件。
5.在CDialogDlg.cpp中添加CDlgExec.h头文件,如下图所示:
在这里插入图片描述
双击模态对话框会自动生成相对应的代码,在代码中添加代码,如下图所示:在这里插入图片描述
首先创建对象:CDlgExec dig;
设置弹出模式:dig.DoModal();
模态窗口有阻塞功能,点击窗口后,窗口不会立刻消失。

非模态窗口创建

1.在主窗口中添加一个按钮,更改“Caption”为"非模态对话框"
2.右键点击Dialog,选择“插入Dialog”,更改窗口ID为IDD_SHOW
3.在IDD_SHOW窗口中添加按钮,设置“Caption”为“非模态弹出”
4.在IDD_SHOW窗口中点击右键,添加类,设置类名为CDlgShow
5.在主窗口中,双击非模态对话框按钮,为非模态对话框添加点击事件。程序如下所示:
在这里插入图片描述
在这里插入图片描述
说明:
首先要添加CDlgShow.h文件。
创建非模态对话框对象:CDlgShow dig;
创建窗口:dig.Create(IDD_SHOW);
显示窗口:dig.ShowWindow(SW_SHOWNORMAL);

完成后点击主窗口的非模态弹出,非模态窗口会一闪而过,需要将CDlgShow.dlg写入CDialogDlg.h文件中,并引入CDlgShow.h文件,如下图所示:
在这里插入图片描述
在这里插入图片描述
完成后窗口不会立刻消失,会停留直到手动关闭。但再次点击时会报错,要将创建窗口的程序写到 CDialogDlg.cpp文件的OnInitDialog()函数中,如下图所示:
在这里插入图片描述

自定义对话框

在这里插入图片描述
在单文档模式下,添加自定义对话框选项,并为该选项添加事件处理器。添加.h文件和窗口显示代码。

在这里插入图片描述
在这里插入图片描述

逃跑的按钮

1.新建一个类:MyButton 继承与CButton
在这里插入图片描述
2.双击主函数Dlg,看.h文件是否添加
在这里插入图片描述
3.在新建类的WM_MOUSEMOVE事件中添加以下代码:
在这里插入图片描述
4.在主函数Dlg代码中添加以下代码:
在这里插入图片描述
5.给按钮添加位图
在这里插入图片描述
Bitmap要设置为TRUE
在这里插入图片描述

让按钮变灰

在这里插入图片描述

2.对话框之静态文本

在这里插入图片描述

用静态文本显示文本

1.点击工具箱添加Static Text 控件,设置内容为“哈哈”
2.添加两个按钮,设置内容为“设置为呵呵”和“获取内容”
3.点击静态文本控件,更改ID为IDC_TEXT,右键点击静态文本,为静态文本添加变量,设置访问权限为private,类别为Control(控件类型,还有value,值类型),添加名称为m_text,如下图所示:
在这里插入图片描述
4.设置文本内容:
双击“设置为呵呵”按钮,添加点击事件:
在这里插入图片描述
5.获取内容并弹出:
双击主窗口中“获取内容按钮”,添加点击事件:
在这里插入图片描述

用静态文本显示图片

1.将bmp图片放在程序所在的文件夹下
2.添加静态文本控件,设置ID为“IDC_PIC”,添加变量,设置变量名为“m_pic”;
3.将图像显示代码写入初始化代码OnInitDialog()中,如下图所示:
#define HBMP(filepath,width,height)(HBITMAP)LoadImage(AfxGetInstanceHandle(),filepath,IMAGE_BITMAP,width,height,LR_LOADFROMFILE|LR_CREATEDIBSECTION)

在这里插入图片描述

用按钮更改显示内容

点击按钮后,更改按钮显示的内容
1.在主窗口中添加一个按钮,更改Caption为任意值。
2.为按钮设置变量,更改变量权限,设置变量名为“m_btn”。
3.双击按钮,添加点击事件:
在这里插入图片描述

按钮设置点击状态

在这里插入图片描述
总结:
在这里插入图片描述
创建新窗口时需要给新窗口定义新的类,创建新的类;而静态文本要创建变量,按钮要添加点击事件。

3.对话框之文本编辑框

1.创建新项目,选择Edit Control工具,创建文本编辑框。
2.若要支持输入换行,要属性中的Multiline改为true(可变为多行),将Want Return改为ture(接收Enter键换行),如下图所示:
在这里插入图片描述
3.若要编辑框在水平方向无限输入,要将Auto HScroll改为true
若要编辑框在竖直方向无限输入,要将Auto VScrol改为true
如下图所示:
在这里插入图片描述
4.若要在编辑框中添加竖直方向的滚动条,要将Vertical Scroll改为true。
若要在编辑框中添加水平方向的滚动条,要将Horizontal Scroll改为true。如下图所示:
在这里插入图片描述

案例1

1.添加两个文本编辑框,两个按钮:

在这里插入图片描述
2.为文本编辑框添加变量,如图所示:
在这里插入图片描述
更改访问权限和名称即可。
3.第一个编辑框默认有内容,将内容写入初始化函数中
在这里插入图片描述
在这里插入图片描述
4.为复制按钮添加点击事件,双击复制按钮,添加代码:
在这里插入图片描述
5.为退出按钮添加点击事件,双击退出按钮,添加代码:
在这里插入图片描述
6.新建的文本编辑框在运行时,只要按下回车,程序就会退出,重写可解决这个问题。
找到该编辑框的类点击属性,在重写选项中找到OnOK,点击添加代码:
在这里插入图片描述
把该行代码注释掉:
在这里插入图片描述

案例2

1.添加一个编辑框,两个按钮,为编辑框以值的方式添加变量
在这里插入图片描述
在这里插入图片描述
更改访问权限及名称。
2.双击设置内容按钮,为按钮添加点击事件:
在这里插入图片描述
3.双击获取内容按钮,为按钮添加点击事件:
在这里插入图片描述
总结:
在这里插入图片描述

4.对话框之下拉框

1.新建项目,添加下拉框工具Combo Box。
2.点击属性,在data中添加下拉内容,用英文分号;分隔。此时,下拉框的内容可修改,若想取消修改,要将属性中Type改为下拉列表(Drop List)
3.列表内容会默认以ASCLL顺序排序,若想自定义顺序,将Sort改为False
在这里插入图片描述
4.以代码的方式给下拉框添加内容:
给下拉框添加变量
在这里插入图片描述
用代码对下拉框进行操作
在这里插入图片描述
4.在下拉框的事件中有一个CBN_SELCHANGE,每次选项更改以后会触发该事件,当选项更改后,可以利用该事件将更改的选项弹出:
在这里插入图片描述
代码如下:
在这里插入图片描述
总结:
在这里插入图片描述

4.对话框之列表

1.新建项目,选择List Control控件,在View中选择Report(列表模式)
2.为列表控件添加变量
在这里插入图片描述
3.在初始化代码中添加内容:
在这里插入图片描述
总结:
在这里插入图片描述

单选框

在这里插入图片描述
按ctrl+B可以对控件进行排序
在这里插入图片描述
在这里插入图片描述

当选择后,弹出所选中的内容
在这里插入图片描述

复选框

添加控件,并为控件添加变量
在这里插入图片描述
在这里插入图片描述
添加代码:
在这里插入图片描述
在按钮添加事件中添加代码:
在这里插入图片描述
效果如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值