一、项目创建

1、打开vs,并且创建一个新的项目(这里编者选择了使用vs2019)

2、这里选择MFC应用(如果这里没有MFC应用的话,请继续往下看,有解决方法)

3、配置完新项目后,会跳出配置“MFC应用程序"的窗口,将应用程序类型改为基于对话框即可。(其余设置可根据个人需要进行更改)

4、如果没有MFC应用该怎么办?

点击电脑左下角,找到Visual Studio Installer,左键双击打开

找到已安装的vs2019,点击修改

在右侧”安装详细信息“  找到下图中划红色横向的选项并勾选

二、设置登录界面

1、确认创建项目成功,这是项目创建好的样子

如果没有像编者这么多的视图,请点击视图,在视图页面找到自己想要的一些视图

2、设计登陆器页面

在左侧工具箱内有很多简便可用的工具,这里我们需要的是Edit Control和Static Text这两个

左键编辑框,可以弹出对应的属性。我们将第一个编辑框的ID改为 IDC_NAME

第二个改为IDC_PSW

在第二个编辑框中,同时在属性视图中找到”密码“,将其改为True,这样密码就是不可见的状态

这就是页面配置完后的界面(仅供参考)

3、配置变量

右键点击页面,找到类向导

点击进去后找到成员函数,在这里可以看到咱们这几个部件的信息(ID,类型,成员)

左键点击我们的IDC_NAME,按照如图更改配置即可

点击下一步,这里我将最大字符数进行了限制,这样就能限制用户输入字符的数量了。接着点->完成->确定。

同理IDC_PSW也是一样的配置即可,最大字符数可以根据所需修改

三、代码展示

打开”解决问题资源管理器”,找到Dlg.cpp结尾的文件点击开,在这个下面添加函数

1、初始化阶段的函数中进行一些配置


BOOL CMFCloginDlg::OnInitDialog()
{CDialogEx::OnInitDialog();// 将“关于...”菜单项添加到系统菜单中。// IDM_ABOUTBOX 必须在系统命令范围内。ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX < 0xF000);CMenu* pSysMenu = GetSystemMenu(FALSE);if (pSysMenu != nullptr){BOOL bNameValid;CString strAboutMenu;bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);ASSERT(bNameValid);if (!strAboutMenu.IsEmpty()){pSysMenu->AppendMenu(MF_SEPARATOR);pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);}}// 设置此对话框的图标。  当应用程序主窗口不是对话框时,框架将自动//  执行此操作SetIcon(m_hIcon, TRUE);            // 设置大图标SetIcon(m_hIcon, FALSE);        // 设置小图标// TODO: 在此添加额外的初始化代码m_csName = "";m_csPsw = "";UpdateData(FALSE);GetDlgItem(IDC_PSW)->SetFocus(); //限制一下,如果用户无密码输入,即 确定键 点击不了GetDlgItem(IDOK)->EnableWindow(FALSE);return FALSE;  // 除非将焦点设置到控件,否则返回 TRUE
}

2、对登陆器的一些逻辑功能进行实现

void CMFCloginDlg::OnBnClickedOk()
{CString sun;CString spwd; // 创造两个字符串变量来接受用户输入的信息(用户名和密码等)GetDlgItemText(IDC_NAME, sun); // 返回用户名GetDlgItemText(IDC_PSW, spwd); // 返回密码/* 判断输入的用户名与密码是否正确使用用户名(可以是学号,也可以是名字)和密码(唯一)相匹配实现登陆如果其中一项为空或者错误都不可加入系统主页面,并且返回提示信息*/if (sun.IsEmpty()){MessageBox(_T("用户名不能为空!"));return;}if (spwd.IsEmpty()){MessageBox(_T("密码不能为空!"));return;}BOOL isSuccess = (!sun.CompareNoCase(_T("Zowey")) && !spwd.CompareNoCase(_T("123456"))) || (!sun.CompareNoCase(_T("0123456")) &&!spwd.CompareNoCase(_T("123456"))); // 注意取反语句// isSuccess = TRUE; //开发过程使用此语句,实现直接登陆if (isSuccess){MessageBox(_T("用户登录成功"));//_T是一个宏,作用是让你的程序支持Unicode编码}else{MessageBox(_T("用户名或者密码错误"), _T("登陆失败")); // 返回提示信息}
}void CMFCloginDlg::OnEnChangePsw()
{GetDlgItem(IDOK)->EnableWindow(TRUE);//当密码框中有内容了,将 确定键 解锁
}void CMFCloginDlg::OnEnChangeName()
{}

四、成果展示

最后,这是编者的课程设计作业,很基础的一个设计,可能有些地方写的还不是太详细,希望能对那些不太懂操作的同学起到帮助!同时也很感谢其他博主给予的灵感!最后谢谢你的支持!

基于MFC的简易登录器相关推荐

  1. Unity - 使用Winform制作简易登录器

    Unity - 使用Winform制作简易登录器 Resolution Dialog PC.Mac环境下,Unity提供了一个简易的设置分辨率.图形性能的对话框,叫Resolution Dialog, ...

  2. 【基于QMediaPlayer的简易视频播放器】— 3、结合QSlider实现播放进度控制和音量控制

    基于QMediaPlayer的简易视频播放器 1.创建基本布局 2.QMediaPlayer的基本使用 3.结合QSlider实现播放进度控制和音量控制 4.重载QSlider鼠标响应事件,实现单击跳 ...

  3. 基于QtAV的简易播放器(开源)

    这个开源代码,是我利用QtAV源码,提取其中一部分代码,进行整合到我自己项目中,做的一个小型播放器测试,至于怎么安装一些环境以及QtAV源码编译在我以前写的一篇博客中可以看到(Qt第三方库QtAV-- ...

  4. 如何基于MFC制作简易绘图软件

    本文将讲解如何通过MFC制作一个简易的绘图软件 文章目录 一.构造软件的界面 二.画出图形 三.图形的保存与重绘 四.程序下载 一.构造软件的界面 首先新建一个MFC的工程,进入之后按F5调试,可以看 ...

  5. 基于JAVA-SOCKET的简易聊天器

    经过对socket编程的学习,结合前人已做出的聊天器,加以修改后,最终地,制作出JAVA版简易聊天器. 以下是代码: client类 public class Client{private JFram ...

  6. Linux 基于ffplay的简易视频播放器(网络+本地)

    新手刚开始学习ffmpeg. 参考网上的ffmpeg资料和雷神的博客,简易做了个播放器,边学边做. 暂时未做音频,所以播放时有沙沙声. 视频的播放速度也有问题,需要再调整,后续再处理速度和音频的问题! ...

  7. 基于IJKPlayer的简易视频播放器

    写在前面 PS:没错,这就是那篇躺在草稿箱里好几个月的僵尸博客,直到现在(2017年1月中旬)才打算写完,简单总结一下知识点,以备不时之需. 现在的项目是一个电影预告的APP,必然得有个视频播放器,之 ...

  8. Android 基于ffmpeg开发简易播放器 - EGL和OpenGLESGLES显示YUV视频

    EGL和OpenGLESGLES显示YUV视频 1.EGL EGL是OpenGL ES与系统原始窗口的适配层: Display:用于与原生窗口建立连接. Surface:用于渲染的区域. Contex ...

  9. 基于51单片机的简易抢答器设计

    基于51单片机的简易抢答器 具体功能: 1.主持人按下抢答开始按键,抢答者才可以开始抢答,数码管抢答倒计时20S. 2.抢答者按下按键,数码管显示抢答者的编号. 3.可以通过按键修改倒计时时间. 部分 ...

最新文章

  1. IBD:5-氨基水杨酸治疗后溃疡性结肠炎患者真菌菌群的变化
  2. 隐马尔可夫模型(Hidden Markov Model,HMM)是什么?隐马尔可夫模型(Hidden Markov Model,HMM)的三个基本问题又是什么?
  3. linux安装python3_关于在linux系统中python第三库的区分和查找
  4. wxWidgets:wxProcess类用法
  5. Ubuntu 安装 Qt 开发环境(转)
  6. PHP不读取Excel空行,phpexcel中遇到空单元格不跳过
  7. leetcode283.移动零
  8. 推荐一个好库 热键监听 hotkeys-js
  9. Fiddler在PC/台式对Android进行抓包
  10. mysql与php6_PHP与MySQL的连接
  11. if __name__ == __main__如何正确理解
  12. 在 SELECT 查询中使用分组集
  13. 基于matlab人脸识别论文,基于matlab的人脸识别系统设计 毕业论文
  14. Windows7下Edge的首页关闭我的资讯,兴趣等
  15. detours钩子库的简单使用
  16. matlab图像处理(图像)
  17. 华为路由器显示连接到服务器失败怎么办,华为路由器设置好后不能上网怎么办...
  18. 常见视频文件格式详解
  19. 记一次Openwrt使用ssh连接失败的经验
  20. Datawhale数据分析思考与问题解决

热门文章

  1. 带孩子们做环球旅行的读后感_教师一句话影响孩子一生,老师们该怎么做?
  2. 阿里云代码持续集成rdc思路
  3. stm32f103运行python_microPython 有没有在 STM32F103上运行的固件
  4. uln2803驱动直流电机电路图_51单片机的直流电机PWM调速系统设计,正转反转,加减速,急停等,仿真和代码...
  5. Shimeji开源桌宠代码学习(2)
  6. 特斯拉电池包拆解过程 TESLA
  7. IPSEC 面试的几个小问题
  8. 【官方标准】- 交通运输领域元数据标准规范
  9. 5G反开3D-MIMO之负荷均衡优化
  10. I hate Regex and 正则表达式可视化