今天继续上次的做注册界面。首先先在Dialog文件夹上右键新建一个dialog ,然后使用控件搭建一个简单的注册界面
搭建完成之后,点击注册界面右键给注册界面添加一个类,用与和登录界面关联。完成之后然后 回到登录界面,双击注册按钮注册按钮点击事件。进入方法之后开始写代码让两个界面进行交互。 CReigater 是注册界面添加的类名。
//非模态 new一次创建了一个窗口对象指针
CReigater * dlgregister1 = new CReigater();
dlgregister1->Create(IDREGISTER);
dlgregister1->ShowWindow(SW_SHOWNORMAL);//模态 不需要new 直接创建一个栈中对象
/*CReigater dlgregister2;
dlgregister2.DoModal();*/
然后运行起来,点击注册是不是注册界面出来了呢,接着我们完成回到登录界面。双击注册界面的返回按钮添加事件。
只需添加一句代码就OK了。
CDialogEx::OnCancel();
或者使用destroy 销毁也可以
this->DestroyWindow();
剩下就是注册账号了,首先在资源管理中先找到InfoFile源文件 在里面加入几句代码
//注册
void CInfoFile::WritePwd(char * name, char * pwd)
{
//创建文件输入对象
ofstream ofs;
ofs.open(_F_LOGIN);ofs << name << endl;
ofs << pwd << endl;ofs.close();
}
然后回到注册界面给三个输入框分别添加变量1、改为value ,2、起个变量名 3、可改可不改 。点击完成。
完成之后双击确定按钮添加事件。在方法体内写入代码。
//注册面板确定事件
void CReigater::OnBnClickedButton2()
{
// TODO: 在此添加控件通知处理程序代码
UpdateData(true);
if (b_user.IsEmpty()|| b_pad.IsEmpty()||b_verpad.IsEmpty())
{
MessageBox(TEXT("输入内容不能为空"));
return;
}
if (b_pad!=b_verpad)
{
MessageBox(TEXT("密码输入不一致"));
return;
}
CInfoFile file; //要在最上方添加InfoFile 的头文件
// CString 转char*
CStringA tmpuser;
CStringA tmppad;
CStringA tmpverpad;tmpuser = b_user;
tmppad = b_pad;
tmpverpad = b_verpad;
file.WritePwd(tmpuser.GetBuffer(),tmppad.GetBuffer());
MessageBox(_T("注册成功"));
//清空窗口
b_user.Empty();
b_pad.Empty();
b_verpad.Empty();UpdateData(false);
}
至此一个登陆注册界面就完成了 ,让我们运行看一下效果吧。
看来效果还是可以的哦*w*
事例:https://download.csdn.net/download/fineboby/11155628
不过这个只使用了很少的几种控件,所以后面我会把每一种控件的使用记录下来。