基于MFC的简易登录器
一、项目创建
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的简易登录器相关推荐
- Unity - 使用Winform制作简易登录器
Unity - 使用Winform制作简易登录器 Resolution Dialog PC.Mac环境下,Unity提供了一个简易的设置分辨率.图形性能的对话框,叫Resolution Dialog, ...
- 【基于QMediaPlayer的简易视频播放器】— 3、结合QSlider实现播放进度控制和音量控制
基于QMediaPlayer的简易视频播放器 1.创建基本布局 2.QMediaPlayer的基本使用 3.结合QSlider实现播放进度控制和音量控制 4.重载QSlider鼠标响应事件,实现单击跳 ...
- 基于QtAV的简易播放器(开源)
这个开源代码,是我利用QtAV源码,提取其中一部分代码,进行整合到我自己项目中,做的一个小型播放器测试,至于怎么安装一些环境以及QtAV源码编译在我以前写的一篇博客中可以看到(Qt第三方库QtAV-- ...
- 如何基于MFC制作简易绘图软件
本文将讲解如何通过MFC制作一个简易的绘图软件 文章目录 一.构造软件的界面 二.画出图形 三.图形的保存与重绘 四.程序下载 一.构造软件的界面 首先新建一个MFC的工程,进入之后按F5调试,可以看 ...
- 基于JAVA-SOCKET的简易聊天器
经过对socket编程的学习,结合前人已做出的聊天器,加以修改后,最终地,制作出JAVA版简易聊天器. 以下是代码: client类 public class Client{private JFram ...
- Linux 基于ffplay的简易视频播放器(网络+本地)
新手刚开始学习ffmpeg. 参考网上的ffmpeg资料和雷神的博客,简易做了个播放器,边学边做. 暂时未做音频,所以播放时有沙沙声. 视频的播放速度也有问题,需要再调整,后续再处理速度和音频的问题! ...
- 基于IJKPlayer的简易视频播放器
写在前面 PS:没错,这就是那篇躺在草稿箱里好几个月的僵尸博客,直到现在(2017年1月中旬)才打算写完,简单总结一下知识点,以备不时之需. 现在的项目是一个电影预告的APP,必然得有个视频播放器,之 ...
- Android 基于ffmpeg开发简易播放器 - EGL和OpenGLESGLES显示YUV视频
EGL和OpenGLESGLES显示YUV视频 1.EGL EGL是OpenGL ES与系统原始窗口的适配层: Display:用于与原生窗口建立连接. Surface:用于渲染的区域. Contex ...
- 基于51单片机的简易抢答器设计
基于51单片机的简易抢答器 具体功能: 1.主持人按下抢答开始按键,抢答者才可以开始抢答,数码管抢答倒计时20S. 2.抢答者按下按键,数码管显示抢答者的编号. 3.可以通过按键修改倒计时时间. 部分 ...
最新文章
- IBD:5-氨基水杨酸治疗后溃疡性结肠炎患者真菌菌群的变化
- 隐马尔可夫模型(Hidden Markov Model,HMM)是什么?隐马尔可夫模型(Hidden Markov Model,HMM)的三个基本问题又是什么?
- linux安装python3_关于在linux系统中python第三库的区分和查找
- wxWidgets:wxProcess类用法
- Ubuntu 安装 Qt 开发环境(转)
- PHP不读取Excel空行,phpexcel中遇到空单元格不跳过
- leetcode283.移动零
- 推荐一个好库 热键监听 hotkeys-js
- Fiddler在PC/台式对Android进行抓包
- mysql与php6_PHP与MySQL的连接
- if __name__ == __main__如何正确理解
- 在 SELECT 查询中使用分组集
- 基于matlab人脸识别论文,基于matlab的人脸识别系统设计 毕业论文
- Windows7下Edge的首页关闭我的资讯,兴趣等
- detours钩子库的简单使用
- matlab图像处理(图像)
- 华为路由器显示连接到服务器失败怎么办,华为路由器设置好后不能上网怎么办...
- 常见视频文件格式详解
- 记一次Openwrt使用ssh连接失败的经验
- Datawhale数据分析思考与问题解决
热门文章
- 带孩子们做环球旅行的读后感_教师一句话影响孩子一生,老师们该怎么做?
- 阿里云代码持续集成rdc思路
- stm32f103运行python_microPython 有没有在 STM32F103上运行的固件
- uln2803驱动直流电机电路图_51单片机的直流电机PWM调速系统设计,正转反转,加减速,急停等,仿真和代码...
- Shimeji开源桌宠代码学习(2)
- 特斯拉电池包拆解过程 TESLA
- IPSEC 面试的几个小问题
- 【官方标准】- 交通运输领域元数据标准规范
- 5G反开3D-MIMO之负荷均衡优化
- I hate Regex and 正则表达式可视化