MFC学习教程的第一个程序(MFC创建一个基于对话框的应用程序

电脑杂谈  发布时间:2020-06-20 15:11:31  来源:网络整理

mfc编写一个简单的登录对话框_mfc编写一个简单的登录对话框_mfc登录对话框代码

首先,创建一个基于对话框的应用程序框架

选择菜单项“文件”->“新建”->“项目”,然后将弹出“新建项目”对话框. 在左面板中,在“ Visual C ++中的已安装模板”下选择“ MFC”,在中间窗口中选择“ MFC应用程序”,然后在下面的“名称”编辑框中键入项目名称,在本例中为“ Addition”,在“位置”中设置项目保存路径. 编辑框. 点击“确定”. 单击“应用程序类型”对话框中的“下一步”,在“应用程序类型”下选择“基于对话框”,否则使用默认设置,单击“完成”.

应用程序类型——基于对话框

在资源视图视图(资源视图)中,您可以看到项目Addition的资源树,展开Addition.rc,有四个子项: 对话框(对话框),图标(图标),字符串表(字符串表)和版本. 然后展开Dialog项,有两个对话框模板,它们的ID是: IDD_ABOUTBOX和IDD_ADDITION_DIALOG,前者是“关于”对话框的模板,后者是主对话框的模板. ID是资源的唯一标识符,本质上是一个无符号整数. 通常,ID表示的整数值是由系统定义的,我们无需干预.

资源视图

第二个自动生成的对话框模板

从上图可以看出,对于主对话框,系统在创建对话框的第一步中自动完成了新对话框模板的创建. 如果需要添加新对话框来创建新对话框模板,则需要右键单击资源视图的“对话框”节点,在右键菜单中选择“插入对话框”,然后新建一个对话框模板将生成. ID是自动分配的.

在资源视图的资源树中双击一个ID,以在中间区域显示相应的资源接口. 双击IDD_ADDITION_DIALOG时,中间区域将显示系统自动生成的“添加”对话框模板. 如下图所示:

对话框模板

三,设置对话框属性

右键单击“添加”对话框模板,然后在右键菜单中选择“属性”. 对话框的属性列表显示在右侧面板中. 如下图所示:

设置属性

mfc登录对话框代码_mfc编写一个简单的登录对话框_mfc编写一个简单的登录对话框

这里是几个常用属性的简短描述,以及“添加”对话框的属性设置描述.

   1.ID:对话框ID,唯一标识对话框资源,可以修改。此处为IDD_ADDITION_DIALOG,我们不修改它。
   2.Caption:对话框标题。我们将其修改为“加法计算器”。
   3.Border:边框类型。有四种类型:None、Thin、Resizing和Dialog Frame。我们使用默认的Dialog Frame。
   4.Maximize:是否使用最大化按钮。我们使用默认的False。
   5.Minimize:是否使用最小化按钮。同样我们使用默认的False。
   6.Style:对话框类型。有三种类型:Overlapped(重叠窗口)、Popup(弹出式窗口)和Child(子窗口)。
   弹出式窗口比较常见。我们使用默认的Popup类型。
   7.System Menu:是否带有标题栏左上角的系统菜单,包括移动、关闭等菜单项。我们使用默认的True。
   8.Title Bar:是否带有标题栏。我们使用默认的True。
   9.Font(Size):字体类型和字体大小。如果将其修改为非系统字体,则Use System自动改为False。
   而如果Use System原来为False,将其修改为True,则Font(Size)自动设置为系统字体。这里我们使用默认的系统字体。    

根据以上描述mfc编写一个简单的登录对话框,我们仅修改了title属性. 此时,我们运行该程序,调试后的界面如下:

更改完对话框名称

四,创建对话框资源

1. 在对话框中添加一个静态文本框(Static Text),该静态文本框用于显示字符串“ addend”.

VS生成的资源模板自动帮助我们添加了一个标题为“ TODO: 在此处放置对话框控件”的静态文本框. 我们可以修改其标题以继续使用它,也可以删除它. 为了在此处学习添加静态文本框的过程,我们将其删除并继续添加新的静态文本框.

删除控件时,可以使用鼠标左键单击以选择它. 选择之后,虚线框将出现在控件周围,然后按Delete键将其删除.

在添加新的静态文本框之前,首先检查是否显示“工具箱”视图. 如果未显示,请单击菜单栏上的“查看”->“工具箱”. 工具箱视图如下:

工具箱

工具箱(工具箱)列出了一些常用的控件mfc编写一个简单的登录对话框,其中之一是“静态文本”,这是我们要添加的控件. 在工具箱的“静态文本”上单击并按住鼠标左键,然后将其拖动到IDD_ADDITION_DIALOG对话框模板. 模板上将出现一个虚线框. 我们找到合适的位置,然后释放鼠标左键将其放下.

用鼠标左键选择控件后,周围会出现一个虚线框,然后鼠标移动到该虚线框上几个黑点的位置将变为双向箭头形状,然后可以按鼠标左键并拖动以更改控件大小. 我们可以通过这种方式更改新添加的静态文本框控件的大小,以更好地显示标题. 当然,整个对话框模板也可以通过这种方式调整大小.

mfc登录对话框代码_mfc编写一个简单的登录对话框_mfc编写一个简单的登录对话框

接下来,是时候修改静态文本框的文本了. 右键单击静态文本框,然后在右键菜单中选择“属性”. 将显示“属性”面板. 在面板上,将Caption属性修改为“ addend”,将ID修改为IDC_SUMMAND_STATIC. 此时,模板如下:

被加数

2. 在对话框中添加一个编辑框(“编辑控件”),用于输入建议的数字.

添加编辑框的过程类似于静态文本框. 在工具箱中选择“编辑控件”控件,然后将其拖到对话框模板中,使其与先前的静态文本框水平对齐(以美观),然后调整其大小以使其适合加数的输入.

右键单击编辑框,然后仍然在右键菜单中选择“属性”以显示“属性”面板,并将其ID更改为IDC_SUMMAND_EDIT. 此时,模板如下:

3. 根据1的方法,添加一个名为“ addend”的静态文本框以显示字符串“ addend”. 并将其ID更改为IDC_ADDEND_STATIC.

4. 按照方法2,添加一个ID为IDC_ADDEND_EDIT的编辑框,以输入加数.

5. 根据1的方法,添加一个标题为“ and”的静态文本框以显示文本“ and”. 并将其ID修改为IDC_SUM_STATIC.

6. 按照2的方法添加一个ID为IDC_SUM_EDIT的编辑框,以显示最终金额.

7. 类似地,将一个Button控件添加到对话框模板中,该控件用于在单击后触发添加计算. 将其标题更改为“计算”,将ID更改为IDC_ADD_BUTTON.

此接口的界面如下:

加法计算界面1

mfc编写一个简单的登录对话框_mfc编写一个简单的登录对话框_mfc登录对话框代码

8. 删除确定按钮. 打开“取消”按钮的属性面板,将标题更改为“退出”,然后将其与“计算”按钮水平对齐.

9. 根据控件的布局,调整整个对话框模板的大小,使其适合控件的布局和漂亮的界面.

这完成了我们在对话框模板中本示例中需要使用的控件. 最终效果如下:

加法界面

在创建对话框资源(即,自己创建添加的接口)之后,需要生成对话框类. 对话框的生成主要包括新的对话框类,添加控制变量和控制消息处理功能.

此例程Addition是一个基于对话框的程序,因此该程序自动创建一个对话框模板IDD_ADDITION_DIALOG并自动生成一个对话框类CAdditionDlg,该类从CDialogEx类派生. 大多数使用VC ++ 6.0的人可能都记得我们定义的对话框类是从CDialog类派生的,但是在VS2010中,常规对话框类是从CDialogEx类继承的.

五,在对话框中为控件添加变量

我们在前面的对话框中添加了几个控件,包括三个静态文本框,三个编辑框和一个按钮控件. 程序自动生成的“取消”按钮将保留为退出按钮,并删除“确定”按钮.

静态文本框仅是在后面的编辑框中说明数据的含义,无论是加数,加数还是总和,因此它们不会更改,我们也不会在其中添加变量. 按钮控件用于操作,此处未添加任何变量. 编辑框中的数据可能会经常更改,因此有必要为每个变量关联一个变量.

   首先为被加数的编辑框IDC_SUMMAND_EDIT添加变量。
   1.在编辑框上点右键,在右键菜单中选择“Add Variable”。弹出添加成员变量的向导对话框。
   2.我们想为其添加值变量而不是控件变量,所以对话框中“Category”(类别)下的组合框中选择Value(值)
   3.在“Variable name”中写入自定义的变量名。为其取名m_editSummand。

添加控件变量

请注意,类的成员变量名称通常以m_开头以标识它是成员变量.

mfc编写一个简单的登录对话框_mfc编写一个简单的登录对话框_mfc登录对话框代码

请参考此方法,然后将双精度变量m_editAddend添加到加数编辑框IDD_ADDEND_EDIT,并将双精度变量m_editSum添加到编辑框IDD_SUM_EDIT.

六. 添加消息处理功能

双击按钮以添加消息处理功能

最直接,最简单的方法是双击“计算”按钮,MFC会自动将BN_CLICKED消息处理函数OnBnClickedAddButton()添加到CAdditionDlg类.

七,在消息处理功能中添加自定义功能

添加消息处理函数后,我们都会得到一个空的OnBnClickedAddButton()函数主体. 要实现所需的功能,我们还需要在功能主体中添加自定义功能代码.

在加法计算器程序中,我们希望“计算”按钮的功能获得总和和的值,然后计算它们的总和并显示在总和编辑框中. 然后,应将OnBnClickedAddButton()的函数主体修改为:

void CAdditionDlg::OnBnClickedAddButton()   
{   
    // TODO: Add your control notification handler code here   
	CString strEDIT1, strEDIT2, strEDIT3;
	GetDlgItem(IDC_SUMMAND_EDIT)->GetWindowText(strEDIT1);//从IDC_SUMMAND_EDIT控件获取被加数
	GetDlgItem(IDC_ADDEND_EDIT)->GetWindowText(strEDIT2);
	int a, b, c;
	a = _ttol(strEDIT1);//将CString转换为int,double,float等数据类型
	b = _ttol(strEDIT2);
	c = a + b;
	strEDIT3.Format(_T("%d"), c);
	SetDlgItemText(IDC_SUM_EDIT, strEDIT3);在ID为IDC_SUM_EDIT的控件上显示转换为CString字符串的数据
}

用于MFC输入的常用功能和数据类型

这里解释了五个知识点:

CString: MFC控件从面板获取数据通常是CString

GetDlgItem(控件ID)-> GetwindowText(CString字符串): 获取ID号为xxx的CString字符串

_ttol(CString string): 将CString转换为int,double,float和其他数据类型

CString字符串. Format(_T(“%d”),int,double,float类型的数据: 将此类数据转换为CString

SetDlgItemText(控件ID,CString字符串): 在ID为xxx的控件上显示转换为CString字符串的数据

结果是:


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-252240-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...