玖月飞桂 2014-02-23 05:38 采纳率: 0%
浏览 1228

MFC可以响应同一个对话框来实现注册、注销、修改密码的功能吗

MFC多个按钮响应同一个对话框,比如注册、注销用户、修改密码 这三个按钮,点击以后响应同一个对话框(该对话框包括用户名、密码、确认密码),通过文件读写的方式来实现注册、注销、修改密码的功能,麻烦大神说一下写代码的思路

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-10-25 18:51
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:
    • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/325357
    • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:MFC开发之对话框背景贴图对控件刷新闪烁问题的解决办法
    • 除此之外, 这篇博客: MFC实现药物管理系统(三):修改密码和添加用户的实现中的 1. 修改密码 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

      初始化修改密码的一个对话框,并关联一个类
      在这里插入图片描述

      点击确定按钮,进行修改密码
      函数实现

      void ChangePwd::OnBnClickedButton3()
      {
      	// TODO:  在此添加控件通知处理程序代码
      	CMainFrame *pFrame = (CMainFrame *)AfxGetMainWnd();
      	CMedicAdmin_1Doc *pDoc = (CMedicAdmin_1Doc *)pFrame->GetActiveDocument();
      	CUser *pUser = pDoc->GetUser();
      	UpdateData(true);
      	int ret = pUser->ChangePwd(m_oriPwd, m_newPwd, m_uiSurePwd);
      	if (ret == -1){
      		MessageBox(TEXT("两次输入的新密码不一致"));
      		return;
      	}if (ret == -2){
      		MessageBox(TEXT("原始密码不正确"));
      		return;
      	}
      	MessageBox(TEXT("修改密码成功"));
      	CDialogEx::OnCancel();
      }
      

      修改密码的函数是在用户类中封装的一个修改密码的函数

      //更改密码
      int CUser::ChangePwd(CString oriPwd, CString newPwd, CString sureNewPwd){
      	if (m_userSet->IsOpen() == false){
      		m_userSet->Open();
      	}
      	if (newPwd != sureNewPwd){
      		return -1;
      	}
      	if (oriPwd != this->GetPwd()){
      		return -2;
      	}
      
      	m_userSet->m_strFilter.Format(TEXT("account = '%s' and password = '%s'"), this->GetAccount(), this->GetPwd());
      	m_userSet->Requery();
      	m_userSet->Edit();
      	m_userSet->m_password = newPwd;
      	m_userSet->Update();
      	this->SetPwd(newPwd);
      	return 0;
      }
      

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

悬赏问题

  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容