学生信息管理系统——界面设计.ppt
课程目标课程目标理解类与对象的概念理解类与对象的概念 理解并掌握理解并掌握MFCMFC的消的消息处理机制息处理机制 掌握掌握VC+VC+开发环境中开发环境中的常用控件的属性、的常用控件的属性、事件、方法事件、方法 知识知识目标目标能够设计出各种类和能够设计出各种类和对象及实例化对象及实例化 能够快速建立能够快速建立MFCMFC应应用程序、添加消息处用程序、添加消息处理函数理函数能力能力目标目标培养热爱程序设计工培养热爱程序设计工作的兴趣作的兴趣树立不怕困难、勇于树立不怕困难、勇于钻研,善于创新钻研,善于创新 的精的精神神培养认真做事,细心培养认真做事,细心做事的态度做事的态度 素质素质目标目标 系统登录主要用于对用户进行安全性检查,以防止非法用户进入系统。另外,使用本系统的用户有多种类型,不同的用户具有不同的操作权限。系统运行时首先出现登录窗口,要求用户输入用户名和密码,单击“登录”按钮时对用户的身份进行验证。任务导入任务导入任务分析任务分析添加对话框资源和对话框类添加对话框资源和对话框类添加消息处理函数添加消息处理函数输出自定义大小和颜色的字体输出自定义大小和颜色的字体“登录登录”按钮处理按钮处理 “登录登录”模块调用模块调用 添加一个对话框资源 IDD_DIALOG_LOGIN,Caption 属性为“系统登录”。对话框界面设置如图所示,其中的主要控件属性和对应的成员变量见表1-1。然后为该对话框生成一个新类 CLoginDlg,将其基类设为CDialog,继承方式为public。示范引导示范引导示范引导示范引导步骤步骤步骤步骤1 1 1 1:添加对话框资源和对话框类:添加对话框资源和对话框类:添加对话框资源和对话框类:添加对话框资源和对话框类步骤2步骤3步骤4步骤5步骤1示范引导示范引导示范引导示范引导步骤步骤步骤步骤2 2 2 2:添加消息处理函数:添加消息处理函数:添加消息处理函数:添加消息处理函数步骤1步骤3步骤4步骤5步骤2 利用 ClassWizard 的Message Maps 选项卡,为CLoginDlg类添加消息处理函数,函数名见表1-2。示范引导示范引导示范引导示范引导步骤步骤步骤步骤3 3 3 3:输出自定义大小和颜色的字体:输出自定义大小和颜色的字体:输出自定义大小和颜色的字体:输出自定义大小和颜色的字体步骤1步骤2步骤3步骤4步骤5 登录窗口中的文本“学生信息管理系统”与其他控件具有不同的字体特征,为了实现此特性,需要在对话框的WM_PAINT消息处理函数中加入以下代码。void CLoginDlg:OnPaint()CPaintDC dc(this);/device context for painting /TODO:Add your message handler code here /创建新字体 CFont NewFont;NewFont.CreateFont(30,0,0,0,700,TRUE,FALSE,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH|FF_SWISS,楷体);dc.SetBkMode(TRANSPARENT);/设置背景模式 CFont*pOldFont=dc.SelectObject(&NewFont);dc.SetTextColor(RGB(0,0,255);/设置文本颜色为蓝色 dc.TextOut(60,20,学生信息管理系统);dc.SelectObject(pOldFont);示范引导示范引导示范引导示范引导步骤步骤步骤步骤4 4 4 4:“登录登录登录登录”按钮处理按钮处理按钮处理按钮处理步骤1步骤2步骤3步骤4步骤5 “登录”按钮的BN_CLICKED 消息处理函数主要是验证用户名和密码是否正确,如果验证通过,则允许进入主窗口,否则要求用户重新输入。函数代码如下。void CLoginDlg:OnOK()/TODO:Add extra validation here UpdateData(true);if(m_strUserName=)MessageBox(请输入用户名);return;if(m_strUserPsw=)MessageBox(请输入密码);return;CADOConn m_ADOConn;m_ADOConn.OnInitADOConn();示范引导示范引导示范引导示范引导步骤步骤步骤步骤4 4 4 4:“登录登录登录登录”按钮处理按钮处理按钮处理按钮处理步骤1步骤2步骤3步骤4步骤5_bstr_t strSQL=select*from Users where m_strUserName+and UserPsw=+m_strUserPsw+;RecordsetPtr LoginSet;LoginSet=m_ADOConn.GetRecordset(strSQL);if(LoginSet-adoEOF)MessageBox(“用户名或密码错误,请注意大小写!”,“登录失败);return;_variant_t theValue;theValue=LoginSet-GetCollect(UserName);/获取用户名if(theValue.vt!=VT_NULL)UserName=(char*)bstr_t(theValue);theValue=LoginSet-GetCollect(UserType);/获取用户类型if(theValue.vt!=VT_NULL)UserType=theValue.iVal;m_ADOConn.ExitConnect();EndDialog(IDOK);/登录成功,结束对话框,返回IDOK示范引导示范引导示范引导示范引导步骤步骤步骤步骤5 5 5 5:“登录登录登录登录”模块调用模块调用模块调用模块调用步骤1步骤2步骤3步骤4步骤5 在应用程序类的 InitInstance()函数中调用登录模块,代码如下。注意在文件开始处加入预处理命令#include LoginDlg.h。BOOL CStudentMISApp:InitInstance()/登录窗口 CLoginDlg LoginDlg;if(IDOK!=LoginDlg.DoModal()return false;/主窗口 CStudentMISDlg dlg;m_pMainWnd=&dlg;int nResponse=dlg.DoModal();谢谢!