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

    xiaoxiao2022-07-13  222

    关于空控件更新:

    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可以对控件进行排序

    当选择后,弹出所选中的内容

    复选框

    添加控件,并为控件添加变量 添加代码: 在按钮添加事件中添加代码: 效果如下:

    最新回复(0)