欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MFC应用登录框的实现(VS2019)

程序员文章站 2022-07-14 09:25:57
...

对话框的使用有了一定的了解后
就可以来实现一下登录框的应用程序
只要按步骤来,一切水到渠成
MFC应用登录框的实现(VS2019)
首先还是创建MFC应用程序,先选择单文档的应用程序;
创建好了添加一点文字;
MFC应用登录框的实现(VS2019)

这个就是主界面,我们登录成功后的话就会进入这个界面;
所以我们要添加一个对话框来实现,怎么添加呢,上一篇说过就不详细说了;
MFC应用登录框的实现(VS2019)
在资源视图中找到DIalog选择添加Dialog;
然后双击;
然后在左侧的工具箱里面找到插件进行布局;
MFC应用登录框的实现(VS2019)
我的登录界面给布局成这样;
然后呢,关键的一点,在上图右键,选择添加类;
MFC应用登录框的实现(VS2019)

起好名字确定就可以了;
下一步呢,在类视图中找到C+id+App中的Initlnstance()之后双击;
MFC应用登录框的实现(VS2019)
在头文件中加入#include “CLoginDlg.h”(就是你刚才新建类起的名字);
然后再双击Initlnstance()进入到这个函数;
加入代码;

CLoginDlg dlg;
dlg.DoModal();

就像这样;
MFC应用登录框的实现(VS2019)

这部就是把你插入的对话框在单文档之前,以模态对话框显示出来,现在就可以运行试试了,会出现你的登录对话框;
然后我们就可以做登录功能了;
我们回到这个登录对话框
MFC应用登录框的实现(VS2019)
分别右键这两个示例编辑框,选择添加变量;
MFC应用登录框的实现(VS2019)
MFC应用登录框的实现(VS2019)
起好名字(我的是user和pas),类别选值的这个选项,访问权限选private;其他的都不要改;
那我们怎么能做到写好用户名和密码,点击登录就进入主界面呢,下面就是;
双击登录按钮;
会进入到这个按钮事件处理函数;
在里面加上下面代码;


void CLoginDlg::OnBnClickedButton2()
{
	// TODO: 在此添加控件通知处理程序代码
	UpdateData(TRUE);
	if (user.IsEmpty() || pas.IsEmpty()) {
		MessageBox(TEXT("用户名或密码不能为空"));
	}
	else if (user == "admin" && pas == "admin") {
		CDialog::OnCancel();
	}
	else {
		MessageBox(TEXT("用户名或密码错误"));
	}


}

可以看懂的吧,这就是点登陆后会实现的功能!
同理我们然再双击取消按钮,也会进入事件处理函数里面,加上代码;

void CLoginDlg::OnBnClickedButton1()
{
	// TODO: 在此添加控件通知处理程序代码
	exit(0);
}

这样两个按钮的功能就做好了;
然后运行;
MFC应用登录框的实现(VS2019)
输入admin,admin就可以进入主界面了;
但是做完了吗,并没有,这个登录是有bug的;
你点右上角的×或者按回车,也都会进入主界面,可是我们不想要这个东西;
所以我们要给他干掉!
MFC应用登录框的实现(VS2019)
先解决点击×的BUG;
我希望的是点击×就退出了,而不是进入主界面;
我们点击上面的对话框,在右下角找一个叫消息的按钮,点击后找WM_CLOSE;

MFC应用登录框的实现(VS2019)
选择添加;
把里面的代码注释掉,写上exit(0);

void CLoginDlg::OnClose()
{
	// TODO: 在此添加消息处理程序代码和/或调用默认值

	//CDialogEx::OnClose();
	exit(0);
}

这个bug就解决了;
MFC应用登录框的实现(VS2019)

然后解决掉回车的bug;
我可不想我啥都没有输入,一个回车进去主界面了;
所以也要把它干掉;
在类视图找到C+id+Dlg的文件;
然后单击在下面找到一个叫做重写的按钮,在里面再找OnOk()这个函数;选择添加(add);
MFC应用登录框的实现(VS2019)
直接把里面的注释掉就好了;

void CLoginDlg::OnOK()
{
	// TODO: 在此添加专用代码和/或调用基类

	//CDialogEx::OnOK();
}

这样一个登录框的功能就完全实现了!
MFC应用登录框的实现(VS2019)
当然这只是一个简单的登录界面,至于优化或者连接数据库都没有;
所以呢,这个只是一个简单的登录功能实现;
要是想做的更多(比如要改个名字,加个图标)都要再去弄,我这里就不弄了!
好,结束!
MFC应用登录框的实现(VS2019)

相关标签: vc++