MFC C++登录对话框编写步骤
3.1 创建“登录”对话框 3.1.1 生成默认对话框工程 1.进入VC++ 安装Microsoft Visual Studio 6.0 后,在开始菜单中单击Microsoft Visual Studio 6.0子菜单下的Microsoft Visual C++ 6.0,即可打开VC++ 6.0 编程平台,如图3.2所示。
(c)“用户名”静态文本标签
(d)“确认”按钮属性
如图3.16(e)所示,在“密码”编辑框属性的Styles 选项卡中勾选 Password。这样,程序运行后,用户输入密码到编辑框时将会显示“***”符号。
(e)“密码”编辑框属性
图3.16 设置控件属性
添加的控件可能大小不一,此时可以选定某个控件,移动鼠标到控件边缘 处出现双箭头来调整大小。要设置多个控件之间的位置大小关系时,先按住 Shift键不放,然后用鼠标选取控件,直到所需要的多个控件选取之后再释放 Shift键。若在选取时,对已选取的控件再单击一下,则取消该控件选取。一旦 单个控件被选取后,其四周由选择框包围着,选择框上还有几个蓝色实心小方 块,拖动它可改变控件的大小;多个控件被选取后,其中只有一个控件的选择 框有几个蓝色实心小方块,这个控件称为“主要控件”,而其他控件的选择框 的小方块是空心的。如图3.17所示。
图3.20 “New Class”对话框
Байду номын сангаас
2.为“登录”对话框设置控件关联变量 使用MFC ClassWizard可以很容易地为一个控件定义关联变量并可设置其数 据范围。例如,下面的步骤是为CDlgLogin类的控件IDC_EDIT1和IDC_EDIT2即 “用户名”和“密码”编辑框添加关联变量m_user和m_pass。 (1)按快捷键Ctrl + W,打开MFC ClassWizard,并切换到Member Variables页面,如图3.21所示。
图3.2 打开VC++ 6.0
编程平台由图3.3所示的各类交互元素组成,其中菜单包含各种编程设计命 令,工具栏包括一些命令的快捷按钮和各种导航按钮、搜索框等,视图显示区 (项目工作区窗口)将会在建立工程后显示编程视图,程序文本、界面编辑区 是主要的工作场所,进行程序的录入和界面的设计。
功能菜单 工具栏
4.动态链接库
动态链接库提供了一些特定结构的函数,能被应用程序在运行过程中装入和 连接,且多个程序可以共享同一个动态链接库,这样就可以大大节省内存和磁盘 空间。 Windows提供了丰富的应用程序可调用的函数,大多数用于实现其用户界面
和在屏幕显示的文本和图形,都是通过动态链接库来实现的。这些动态链接库是
视图显示区
程序文本、界面编辑区
编译信息显示区
图3.3 VC++ 6.0 编程平台
2.建立管理系统工程 选择“文件”→“新建”菜单,在弹出的“新建”对话框中选择“工程” (Project)标签,这时显示出一系列的应用程序项目类型;选择MFC AppWizard (exe)的项目类型(该类型用于创建可执行的Windows应用程序即MFC应用程序, 不同于控制台方式的“Win32 Console Application”),并在“工程”(Project) 中输入项目名XSCJTEST(为与后文叙述一致,请读者在编程时尽量使用本书定义的 名称),在“位置”(Location)处选择或输入工程保存的位置,如图3.4所示。
图3.12 对话框属性修改后的部分界面
2.为“登录”对话框添加控件 对话框编辑器最初打开时,控件工具栏是随之出现的,利用此工具栏中各 个按钮,可以顺利完成控件的添加。图3.13说明了各个图标按钮所对应的控件 类型。
控件的选择 静态文本 组框 复选框 组合框 水平滚动条 旋转按钮 滑动条 列表视图 标签 复合编辑 月历 用户定制工具 静态图片 编辑框 按钮 单选框 列表框 垂直滚动条 进展条 热键 树形视图 动画 日期选择 IP 地 址 组合框的扩展
图3.4 MFC AppWizard的“新建”对话框
单击“确定”按钮,出现如图3.5所示的MFC AppWizard - Step1对话框。
图3.5 “Step 1”对话框
3.选择应用程序类型 系统显示下列单选钮:S单个文档(Single Document)、M多重文档 (Multiple Document)和D基本对话(Dialog based)。 为了建立只有一个“登录”对话框的测试程序,选择“D基本对话”。 保留其他的默认选项,单击“完成”按钮,系统出现一个对话框,显示用 户在前面步骤中做出的选择,单击“确定”按钮。系统生成默认的基于对话框 的对话框应用程序项目,并且进入VC++工程开发环境。此时默认打开“登录” 对话框工程XSCJTEST。
2.图形设备接口(GDI)
在控制台应用程序中,想要在屏幕或打印机上显示或打印一幅图形是一件非 常复杂的事件,因为用户必须按照屏幕分辨率模式以及专用绘图函数库调用相应 的函数在屏幕上绘图,或根据打印机类型或指令规则向打印机输送数据。而
Windows提供了一个抽象的接口,称为图形设备接口(Graphical Device
1.为“登录”对话框IDD_LOGIN创建类 在应用程序中使用添加的对话框前,须先为该对话框模板创建一个用户对话 框类。在对话框资源模板的空白区域(没有其他元素或控件)内双击鼠标,将弹 出如图3.19所示的对话框,询问是否为对话框资源创建一个新类。
图3.19 “Adding a Class”对话框
(a)显示图片的图片控件属性
(b)用做分割条的图片控件
分别右键单击控件,在弹出的属性对话框中,对2个静态文本控件和2个按 钮分别命名,即在Caption一栏分别填入标题“用户名”、“密码”、“确认 (&Y)”、“取消(&C)”,如图3.16(c)和图3.16(d)所示,其中按钮名 称后的(&X)表示此按钮可以使用键盘上的Alt + X组合键作为快捷键。
登 录 界 面 .b m p
登 录 界 面 .b m p
图3.15 import命令导入图片文件
设置左上方图片控件的属性,将General选项卡中的Type设为BITMAP,Image 设为IDB_BITMAP1,如图3.16(a)所示,之后图片控件将会显示此图片。 对另一个图片控件则拉成细条状,如图3.16(b)设置属性,将General选项 卡中的Type设为Frame,并勾选Extended Styles选项卡中的Static Edge项,调 整粗细长度作为分隔条。
图3.17 设置控件大小和位置
在菜单上选择Layout(编排)→Align(对齐),可以选择左、右、上、下 对齐,位置以“主要控件”为基准。使用Make Same Size命令则可以改变其他 控件的大小,使其与“主要控件”的尺寸一致。编辑完成后的“登录”对话框 如图3.18所示。
图3.18 “登录”对话框编辑后的最终状态
1.消息驱动机制
基于Windows程序和基于控制台应用程序之间的一个最根本区别,就在于控 制台应用程序是通过调用系统的函数来获得用户输入的,而Windows程序则是通 过系统发送的消息来处理用户输入的。 在Windows操作环境中,无论是系统产生的动作或是用户运行应用程序产生 的动作,都称为事件(Events)产生的消息(Message)。例如,在Windows 桌面(传统风格)上,双击应用程序的快捷图标,系统就会执行该应用程序。在 Windows的应用程序中,也是通过接收消息、分发消息、处理消息来和用户进行 交互的。这种消息驱动的机制是Windows编程的最大特点。
图3.21 MFC ClassWizard的“Member Variables”页面
(2)选定Class name为CDlgLogin,然后在Control IDs列表中,选定所要 关联的控件ID号IDC_EDIT2,双击鼠标左键或单击“Add Variable”按钮,弹出 Add Member Variable对话框,在对话框设置变量的名称、类别和数据类型,如 图3.22所示。
单击“OK”按钮,将弹出如图3.20所示的New Class对话框。其中,Name框 是用来输入用户定义的类名,注意要以“C”字母打头,以保持与Visual C++标 识符命名规则一致。File Name框用来指定类的源代码文件名,单击“Change” 按钮可改变默认的源文件名称及其在磁盘中的位置。Base class和Dialog ID内 容是由系统自动设置的,一般无须修改。从Base class框的内容可以看出,用户 对话框类是从基类CDialog派生而来的。
4.工程开发环境 VC++基于对话框的工程开发环境如图3.6所示。
编译命令 菜单 类 、函 数 的 定 位 插 件 工 具 栏 (根 据 安 装 情 况 )
资源类别
编辑区
资源标识符 工具箱
项目工作区
信息显示
图3.6 基于对话框的工程
1.修改“登录”对话框 保留VC默认生成的对话框资源IDD_XSCJTEST_DIALOG不变。如图3.10所示, 右键单击Dialog,选择Insert Dialog,添加一个新的对话框。
图3.10 插入新对话框
右键单击右边对话框编辑窗口中刚建立的对话框,选择属性,弹出如图 3.11所示的窗口。 ①将对话框标识符改成IDD_LOGIN(在MFC程序中,命名方法要完全遵循 C/C++语言的命名规则); ②将对话框标题改为“登录学生成绩管理系统”。
图3.11 修改对话框属性
单击“字体”按钮,通过弹出的字体对话框将对话框内的文本设置成“宋体, 9”,以使自己的对话框和Windows操作系统中的对话框保持外观上的一致,完成 后对话框如图3.12所示。
mfc创建对话框的基本步骤
mfc创建对话框的基本步骤创建MFC对话框的步骤如下:1. 新建MFC项目。
在创建项目时,选择visual c++选项卡,然后选择MFC。
在右侧选择MFC应用程序,并在下方填写项目名称。
2. 选择应用程序类型。
在创建项目的过程中,你需要选择应用程序类型。
你可以选择单文档或基于对话框的应用程序类型。
以基于对话框的应用程序为例。
3. 添加对话框。
右键点击“Resource Files”,然后选择“Add Resource”。
在弹出的对话框中,选择“Dialog”,然后点击“New”。
这将在资源视图中创建一个新的对话框。
4. 给新的对话框重写ID。
右键点击新创建的对话框,选择“属性”,在属性页中修改IDD为所需的ID,例如IDD_EXEC。
5. 为模态对话框添加类。
右键点击选中的对话框,然后选择“添加类”。
在弹出的对话框中,输入类的名称,然后点击“确定”。
这将为对话框创建一个新的类。
6. 添加控件。
在对话框编辑器中,你可以直接从工具箱里拖动控件到对话框上。
例如,你可以拖动按钮控件到对话框上。
7. 添加事件处理程序。
对于每个添加的控件,你都可以为其添加事件处理程序。
你可以通过右键点击控件,然后选择“添加事件处理程序”来添加事件处理程序。
在弹出的对话框中,选择相应的事件(例如单击事件),然后在右侧的代码编辑器中编写事件处理程序。
8. 运行对话框。
在完成对话框的编辑后,你可以运行对话框来测试其功能。
你可以通过点击工具栏上的“启动”按钮或按F5键来启动应用程序。
这些步骤可以帮助你创建一个基本的MFC对话框。
当然,具体的实现方式还需要根据你的需求进行调整和修改。
MFC登录系统(图解)
MFC登录系统第一步、建立一个框架结构工程选择其它语言中的Visual C++,在中间视图中选择MFC应用程序,下面的名称中输入工程名称GzyOa,解决方案名称是你的工程目录名可以使用默认的工程名也可以修改成自己好记的名称。
点击确定。
下一步我们选择“多个文档”“选项卡式文档”,我们不用文档视图,所以将下面的“文档/视图结构支持(V)”复选框去掉,点击完成。
这样就完成了工程的创建。
第二步,建立登录对话框。
选择“类视图”导航栏,点击右键选择“类向导”。
选择添加类类名CLogin基类为CDialog点击完成。
在类视图中找到刚建的类,点右键选择“转到”对话框(D)制作如下对话框。
(确定改为“登录”,取消改为“退出”,增加“设置”按钮。
)鼠标放在第一个编辑框点右键,选添加变量m_editName同法定义第二个编辑框变量为m_editPassWord,同时将其属性Password设置为True,并在其头文件中手动添加两个变量:public:CString cName;CString cPass;双击登录按钮添加如下代码:void CLogin::OnBnClickedOk(){m_editName.GetWindowTextW (cName);m_editPassWord.GetWindowTextW(cPass);CDialog::OnOK();}这里是把编辑框的内容传给public变量,以便于主程序存储登录信息,这里以后还要添加认证代码。
(这是后话)在类视图中找到CGzyOaApp类(程序入口)修改InitInstance()函数,使用程序先启动对话框后再启动框CMainFrame。
方法如下:1.为CGzyOaApp类添加两个对应变量(用于接收登录窗口的用户信息)CString m_strSqlName;CString m_strSqlPassword;2.先在CGzyOaApp类的源文件头添加#include"Login.h"3.找到InitInstance()函数定义(向下翻)添加如下代码:红色部分BOOL CGzyOaApp::InitInstance(){INITCOMMONCONTROLSEX InitCtrls;InitCtrls.dwSize = sizeof(InitCtrls);InitCtrls.dwICC = ICC_WIN95_CLASSES;InitCommonControlsEx(&InitCtrls);CWinAppEx::InitInstance();if (!AfxOleInit()){AfxMessageBox(IDP_OLE_INIT_FAILED);return FALSE;}AfxEnableControlContainer();EnableTaskbarInteraction();SetRegistryKey(_T("应畖用?程ì序ò向ò导?生Θ?成é的?本?地?应畖用?程ì序ò"));InitContextMenuManager();InitKeyboardManager();InitTooltipManager();CMFCToolTipInfo ttParams;ttParams.m_bVislManagerTheme = TRUE;theApp.GetTooltipManager()->SetTooltipParams(AFX_TOOLTIP_TYPE_ALL,RUNTIME_CLASS(CMFCToolTipCtrl), &ttParams);CLogin m_login;if (m_login.DoModal ()==IDOK){m_strSqlName=m_ame ;m_strSqlPassword=m_login.cPass ;CMDIFrameWnd* pFrame = new CMainFrame;if (!pFrame)return FALSE;m_pMainWnd = pFrame;if (!pFrame->LoadFrame(IDR_MAINFRAME))return FALSE;HINSTANCE hInst = AfxGetResourceHandle();m_hMDIMenu = ::LoadMenu(hInst, MAKEINTRESOURCE(IDR_GzyOaTYPE));m_hMDIAccel = ::LoadAccelerators(hInst, MAKEINTRESOURCE(IDR_GzyOaTYPE));CMainFrame* pMainFrame = new CMainFrame;if (!pMainFrame->LoadFrame(IDR_MAINFRAME))return FALSE;m_pMainWnd = pMainFrame;pMainFrame->ShowWindow(m_nCmdShow);pMainFrame->UpdateWindow();}return TRUE;}这样就完成了登录过程的修改,但对话框还太单调,这里我们使用绘图方法添加标题等信息,方法如下:在类视图中找到对话框类CLogin,点右键,选择类向导。
MFC之编写一个简单的登录对话框
编写一个简单的登录对话框大家好,我们利用MFC编写一个简单的登录对话框。
主窗体是单文档界面。
程序运行的时候,先弹出一个简单的登录对话框,输入用户名和密码后主窗体显示出来。
1、开打VC++6.0。
点击文件,新建,点击工程中的MFC AppWizard(exe),在右边选择工程保存的位置,并且为工程取好名字。
2、点击确定后,选择单个文档,你可以一直点击下一步,直到完成,或者在这里直接点击完成即可,完成后界面如下。
3、点击工具栏中的“!”号试着编译运行一次,看是否有问题。
如果没有问题,我们继续。
点击左边的ResourceView,在Dialog上面鼠标右键单击弹出一弹出框,单击Insert Dialog。
4、在右边新增的对话框中,适当改变窗口大小,加入静态文本框和文本编辑框。
5、鼠标右键单击刚才加进去的第一个静态文本框控件,点击属性。
在弹出的标题中填写:输入用户名:。
然后回车、在对话框上的任何空白的地方右键单击,点击建立类向导。
然后弹出选择建立Create a new class,点击OK。
这是为这个对话框创建一个新的类。
在Name中,为该对话框类取个名字:CDlg_login。
下面的Base class以及Dialog ID不要随便改动。
然后点击OK。
这样新的类CDlg_login就与本对话框建立起了联系。
8、点击OK后,我们并没有退出建立类向导。
点击member variables。
9、左键双击IDC_EDIT_NAME(或者单击后,点击右边的add variables),为IDC_EDIT_NAME增加一个对应在类中的名字:m_login_name。
其他地方不要改动。
点击OK。
同样也对IDC_EDIT_PWD也取一个名字:m_login_pwd。
10、点击确定。
这样我们就建立好了登录对话框以及其对应的类CDlg_login。
我们在ClassView里面可以看到我们新加入类CDlg_login。
11、我们注意到右边的对话框的标题栏上依然还是Dialog,我们可以在对话框空白的地方单击右键,点击属性,在标题中输入:请登录。
VS2010MFC做登陆窗口----账号密码
MFC登陆界面——固定账号和密码1、打开VS2010创建一个MFC应用程序->基于对话框的工程,名字为UserLogin12、在资源视图中右击Dialog选择插入Dialog3、右击新添加地址为IDD_DIALOG1的对话框选择添加类,设置类名为Login4、在解决方案资源管理器源文件中找到UserLogin1.cpp,双击打开把#include"Login.h"添加进去。
5、在UserLogin1.cpp文件中找到BOOL CUserLogin1App::InitInstance()修改以下代码6、在新添加的对话框中添加三个两个静态文本,两个编辑框,一个图片控件。
右击编辑框添加控件变量变量名分别为m_name和m_password,密码对应的编辑框在属性栏中password改为true,这样输入密码时变为如下图7、双击登陆界面的“确定”按钮添加事件处理,代码如下void Login::OnBnClickedOk(){// TODO: 在¨²此ä?添¬¨ª加¨®控?件t通ª¡§知a处ä|理¤¨ª程¨¬序¨°代䨲码?CString c,b;m_name.GetWindowText(c);m_password.GetWindowText(b);if(c.IsEmpty()|| b.IsEmpty()){MessageBox(_T("用户名或密码不能为空!"),_T("用户登录信息"));return;}else if(c=="YY"&&b=="1234"){MessageBox(_T("测试成功!"),_T("登陆"));//这句可有可无}else{MessageBox(_T("用户名或密码不正确"),_T("提示"));return;}CDialogEx::OnOK();}至此就可以编译运行了!运行后当用户名和密码输入正确时点击“确定”即可打开主对话框。
实验八 MFC中的对话框及控件(二)
实验八MFC中的对话框及控件(二)实验目的掌握常用的控件使用方法以及基于对话框的应用程序的开发实验内容1、编辑框的使用2、选择按钮的使用3、下拉列表的使用4、按钮的使用5、基于对话框的应用程序开发一、编辑框的使用[实验步骤]1、新建一个MFC单文档项目;2、在资源选项卡中插入一个自己的对话框3、新建一个对话框模板4、在对话框中添加2个静态文本控件和2个编辑框控件。
注意这2个编辑框控件的ID5、通过Classwizzard添加数据成员。
在Classwizzard弹出的对话框中选择新建你这个对话框的类,取名叫“Cmydlg”,当然你也可以取其他名字选择成员变量选项卡,然后双击某个编辑框的ID,设置对应数据成员名字及类型。
6、在你的工程的view类的头部通过包含对话框类的头文件#include “mydlg.h”包含你所建的对话框类。
注意:如果你改了对话框类的名字,看看相应的项目里新增的那个类的头文件名7、在View类中增加2个变量CString myname;int myage;8、通过Classwizzard增加一个鼠标左键消息响应函数,并在函数中增加如下代码:void CT estView::OnLButtonDown(UINT nFlags, CPoint point){// TODO: Add your message handler code here and/or call defaultCmydlg dlg;if(dlg.DoModal()==IDOK){myname=dlg.m_name;myage=dlg.m_age;Inavalidate();}CView::OnLButtonDown(nFlags, point);}9、在OnDraw函数里增加如下显示内容的代码CString str;str.Format("我的姓名是%s",myname);pDC->TextOut(10,10,str);str.Format("我的年龄是%d",myage);pDC->TextOut(10,30,str);10、编译运行程序,在工作视图区点鼠标左键二、选择按钮的使用[实验步骤]1、新建一个MFC单文档项目;2、在资源选项卡中插入一个自己的对话框3、新建一个对话框模板4、在对话框中添加3个单选框控件。
第五部分MFC与对话框编程教学课件
第五部分MFC与对话框编程教学课件
5.1 对话框的基本原理
对话框是 Windows 应用程序 GUI 界面的一个重要组成部分, 它的主要功能: ·接收用户的输入(数据和操作、控制命令); ·输出用户关心的状态信息(操作的结果数据和状态)。
在对话框中,可以放置各种必要的控件,所有与用户的交互 操作都是通过这些控件实现的。 在 MFC 中,对话框的基本属性和行为由 CDialog 类描述,该 类的基类为 CWnd,因此,它继承了窗口类的所有属性和功能, 并且增加了交互操作所需要的数据交换特性。放置在对话框中 的各类控件,MFC 都有相应的类来描述,所有控件类的基类都 是 CWnd。 CDialog 类和所有控件类的派生层次结构如下:
1 按钮 :按下该按钮,使按钮变成 ,使得该属性对话框 保持可见(Keep Visible),直到释放该按钮或强制关闭对话框。 属性对话框的内容会随着当前选中对象的改变而变化。
2 按钮 :点击该按钮,将显示当前选中属性页面相关内容的 帮助信息。
3 通用标签
:提供对话框或所有控件的通用属性操作。
对话框的主要通用属性操作:
·OnInitDialog 虚函数是窗口消息 WM_INITDIALOG 的响应函数。 当对话框对象收到此消息时,对话框窗口已创建完成,对话 框窗口句柄已经有效,但对话框还没有被显示,对话框窗口 中的控件也已被创建。这意味着在重新定义的 OnInitDialog 中 可以添加一些影响对话框(包括控件)外观的初始化和对话 框构造函数无法完成的初始化工作。OnInitDialog 对对话框的 作用与 OnCreate 对 CMainFrame 对象的作用类似。本例中,首 先使用 ClassWizard 为 CRegisterDialog 添加对 WM_INITDIALOG 消息映射和处理函数 OnInitDialog(注意,在 Visual C++ .NET 中 是通过重载基类的虚函数 OnInitDialog 的方法完成的),然后 手工在 OnInitDialog 中加入对用于工资收入的列表框控件的初 始化代码如下:
MFC简单的登录对话框
登录对话框我们利用MFC编写一个简单的登录对话框。
主窗体是单文档界面。
程序运行的时候,先弹出一个简单的登录对话框,输入用户名和密码后主窗体显示出来。
1、开打VC++6.0。
点击文件,新建,点击工程中的MFC AppWizard(exe),在右边选择工程保存的位置,并且为工程取好名字。
2、点击确定后,选择单个文档,你可以一直点击下一步,直到完成,或者在这里直接点击完成即可,完成后界面如下。
3、点击工具栏中的“!”号试着编译运行一次,看是否有问题。
如果没有问题,我们继续。
点击左边的ResourceView,在Dialog上面鼠标右键单击弹出一弹出框,单击Insert Dialog。
4、在右边新增的对话框中,适当改变窗口大小,加入静态文本框和文本编辑框。
输入用户名:。
然后回车同样在下面的第二个静态文本框的属性标题改为:输入密码:。
然后回车。
6、在第一个文本编辑框上右键单击,点击属性,把ID框中的IDC_EDIT1改为容易理解的名字,如:IDC_EDIT_NAME,注意前面的IDC_EDIT最好不要去掉,这样容易见名而知义。
同样,对第二个文本编辑框的属性中的IDC_EDIT2改为:IDC_EDIT_PWD7、在对话框上的任何空白的地方右键单击,点击建立类向导。
然后弹出选择建立Create a new class,点击OK。
这是为这个对话框创建一个新的类。
在Name中,为该对话框类取个名字:CDlg_login。
下面的Base class以及Dialog ID不要随便改动。
然后点击OK。
这样新的类CDlg_login就与本对话框建立起了联系。
8、点击OK后,我们并没有退出建立类向导。
点击member variables。
9、左键双击IDC_EDIT_NAME(或者单击后,点击右边的add variables),为IDC_EDIT_NAME增加一个对应在类中的名字:m_login_name。
其他地方不要改动。
MFC基于单文本和对话框的登陆界面实现
MFC基于单文本和对话框的登陆界面实现MFC(Microsoft Foundation Class)是一种基于C++语言的面向对象的图形用户界面(GUI)开发框架,它提供了一整套类库和工具,简化了Windows下的GUI应用程序开发。
在MFC中,可以通过单文本和对话框来实现登录界面。
首先,我们可以创建一个MFC应用程序并选择单文档或对话框应用程序。
在本文中,我们选择创建一个对话框应用程序。
创建对话框应用程序后,MFC会自动生成与对话框相关的代码,包括对话框资源和控件类。
然后,我们需要为登录按钮添加点击事件的处理程序。
可以在对话框类的头文件中声明处理程序函数,并在源文件中实现它。
处理程序函数将在用户点击登录按钮时被调用。
在处理程序函数中,我们需要获取用户输入的用户名和密码,并与预先存储的正确用户名和密码进行比较。
可以使用MFC提供的CString类来处理字符串。
如果用户名和密码正确,我们可以显示一个消息框来提示用户登录成功,并关闭登录对话框,打开主界面。
如果用户名和密码不正确,我们可以显示一个错误消息框,提示用户重新输入。
下面是一个示例的处理程序函数:```void CMyDialog::OnBnClickedLoginCString strUsername;CString strPassword;//获取用户输入的用户名和密码GetDlgItemText(IDC_EDIT_USERNAME, strUsername);GetDlgItemText(IDC_EDIT_PASSWORD, strPassword);//比较用户名和密码是否正确if (strUsername == "admin" && strPassword == "password") //登录成功,显示成功消息框MessageBox(_T("登录成功"), _T("提示"), MB_OK ,MB_ICONINFORMATION);//关闭登录对话框EndDialog(IDOK);//打开主界面CMainFrame* pMainFrame = new CMainFrame;pMainFrame->Create(NULL, _T("主界面"));pMainFrame->ShowWindow(SW_SHOW);}else//登录失败,显示错误消息框MessageBox(_T("用户名或密码错误"), _T("错误"), MB_OK ,MB_ICONERROR);}```在处理程序函数中,我们使用了`GetDlgItemText`函数来获取文本框中的文本,`MessageBox`函数来显示消息框,`EndDialog`函数来关闭对话框,`Create`函数来创建主界面窗口。
MFC菜单和对话框创建过程
一、以创建加法计算器为例,简要说一下实现的步骤:
1,新建工程,选择MFC APPWizard,输入文件名,如下图所示:
选择单文档,点击完成
直接点击确定
2.点击ResourseView,单击MENU,双击IDR_MAINFRAME,创建菜单(要为计算器加上ID),如下图所示:
3.单击ResourseView中的Dialog,右键单击Dialog,选择插入Dialog,设置计算器的对话框:
4,为此对话新建类,选择插入->类,弹出新建类对话框,添加名字,选择基类,如下图:
5,添加控件,左侧为组框,右侧为编辑框,加法是按钮,
6 为编辑框添加变量,右键单击编辑框,点击建立类向导,如下图
7 通过建立类向导为加法按钮添加单击事件并编辑函数,如下图所示:
代码如下:
8 通过建立类向导为计算器添加相应事件,右键单击计算器
9,单击Edit Code,添加头文件:#include "dialog.h"
这时就可以编译运行了。
二、当要在MFC中打开Opencv文件时,如果要用到其他的函数编写的CPP文件时,可以右键点击Sourse file 和Head file添加文件到目录,这时这里面的函数就会自动到globals中。
2 C MFC对话框程序设计示例详解
#include "stdafx.h" //VC++程序要包含这个文件,而且要先包含 #include "123.h" //"123.h"头文件放在(#include "stdafx.h")的后面 #include "string" // 添加包含字符处理库函数的头文件
//以下为自己添加的预处理语句--------
#include <fstream> //文件输入、输出流类对象的使用
图 2.4 在弹出的“属性”对话框中指定该控件的 ID(名称)、标题(可见内容)
图 2.5 按照图 2.1~2.4 的方法画出一个编辑框(EDIT),并在它的“属性”对话框中暂时只 要指定该控件的 ID(名称)
图 2.6 按照图 2.1~2.4 的方法画出一个命令按钮(BUTTON),并在它的“属性”对话框中 指定该命令按钮控件的 ID(名称)、标题(可见内容)
图 4.1 对话框源文件 123Dlg.cpp 的初始内容
4.1 头文件 123.h (其内容是定义一个描述学生信息的“类”:c123)
以下只给出该文件自己写的那些代码,而系统生成的代码在此省略。
#include <string> // 添加包含字符处理库函数的头文件---此句加在文件最前面 ……… //这里略去的是系统自动生成的代码
符串更加简单、方便。
3.3 为每个命令按钮(Button)设置消息映射(Message Maps) 以“添加学生”按钮设置鼠标单击的消息映射为例:在图 3.1 中,选“Message Maps”
