1 / 18

系统登录界面设计

系统登录界面设计. 功能要求. 登录界面样式如上图所示; 用户输入正确的用户名和密码方能成功进入系统; 用户名和密码存放在数据库中; 通过“选项按扭”可以显示或隐藏“数据源和数据库名”; 数据源名和数据库名可以使用默认值也可以修改;. 设计步骤. 建立 ODBC 数据源和应用程序框架: 在控制面版中建立数据源 DSN ,数据源名为 ShopAssistant, 连接到 SQLServer 或 Access 数据库,数据库中要建立一个表 TableAccount, 表中有两个字段,一个为 AccountNo, 一个为 Pswd.

fola
Télécharger la présentation

系统登录界面设计

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 系统登录界面设计

  2. 功能要求 • 登录界面样式如上图所示; • 用户输入正确的用户名和密码方能成功进入系统; • 用户名和密码存放在数据库中; • 通过“选项按扭”可以显示或隐藏“数据源和数据库名”; • 数据源名和数据库名可以使用默认值也可以修改;

  3. 设计步骤 • 建立ODBC数据源和应用程序框架: • 在控制面版中建立数据源DSN,数据源名为ShopAssistant,连接到SQLServer或Access数据库,数据库中要建立一个表TableAccount,表中有两个字段,一个为AccountNo,一个为Pswd. • 使用VC++应用程序向导创建一个单文档应用程序SysLogin;

  4. 2)设计登录界面

  5. 3)对话框属性

  6. 4)添加对话框类Clogin

  7. 5)添加成员变量 • 使用类向导按上图添加成员变量: m_User,m_PassWord,m_DSN,m_DataBase • 在Login.h中修改类,添加另一个成员变量 LoginFlag。 格式为:BOOL LoginFlag;

  8. 6)初始化成员变量 • 在Login.cpp中的对话框类的构造函数中初始化成员变量; 格式如下:CLogin::CLogin(CWnd* pParent /*=NULL*/) : CDialog(CLogin::IDD, pParent) { //{{AFX_DATA_INIT(CLogin) m_CheckSet = FALSE; m_User = _T(""); m_PassWord = _T(""); m_DSN = _T("ShopAssistant"); m_DataBase = _T("TableAccount"); LoginFlag=FALSE; //}}AFX_DATA_INIT }

  9. 7)导入ADO类库 • 在StdAfx.h中加入如下代码: #import “c:\program files\common files\system\ado\msado15.dll"no_namespace rename("EOF","adoEOF")

  10. 8)初始化ADO • 在应用程序文件SysLogin.cpp的系统初始化函数BOOL CSysLoginApp::InitInstance()中加入如下代码:位置在预处理命令之后。 //初始化ADO if(!AfxOleInit()) { AfxMessageBox("OLE/COM初始化失败!"); return FALSE; }

  11. 9)显示登录窗口 • 在函数BOOL CSysLoginApp::InitInstance()中,在初始化主窗口之前调用登录窗口,(位置在函数的末尾)代码如下: CLogin login; login.DoModal(); if(login.LoginFlag==TRUE) return TRUE; else return FALSE;

  12. 10)设置登录对话框的初始大小 • 应用类向导,给对话框类添加消息WM_INITDIALOG处理函数: BOOL CLogin::OnInitDialog() 增加如下代码: SetWindowPos(NULL,0,0,350,200,SWP_NOZORDER|SWP_NOMOVE); 其中:350,200为窗口的宽度和高度,要根据你所设计的窗口的大小调整,以便能完全显示内容。

  13. 11)编写复选框的消息处理函数,以便实现窗口的折叠11)编写复选框的消息处理函数,以便实现窗口的折叠 void CLogin::OnCheck1() { // TODO: Add your control notification handler code here if (m_CheckSet) m_CheckSet=FALSE; else m_CheckSet=TRUE; int bottom; if (m_CheckSet==TRUE) bottom=300; else bottom=200; SetWindowPos(NULL,0,0,350,bottom,SWP_NOZORDER|SWP_NOMOVE); }

  14. 12)编写登录按钮的消息处理函数 void CLogin::OnOK() 该函数代码包括连接数据源、连接记录集、口令验证。

  15. 13)连接数据源 //连接数据源 this->UpdateData(TRUE);//将控件的值传给内存变量 _ConnectionPtr pConn; _RecordsetPtr pSet; pConn.CreateInstance(_uuidof(Connection)); pSet.CreateInstance(_uuidof(Recordset)); try { _bstr_t Conn="DSN="+_bstr_t(m_DSN)+";"; pConn->Open(Conn,"","",adModeUnknown); if (pConn->State) AfxMessageBox("数据库连接成功!"); } catch(_com_error e) { AfxMessageBox("数据库连接失败!请查看数据源连接是否正确!"); }

  16. 14)连接记录集 //连接记录集 try { _bstr_t strSQL=" select * from "+_bstr_t(m_DataBase)+" where AccountNo like '"; strSQL+=_bstr_t(m_User); strSQL+="' And Pswd like '"; strSQL+=_bstr_t(m_PassWord); strSQL+="'"; //AfxMessageBox(strSQL); pSet->Open(strSQL,pConn.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText); if (pSet->State) AfxMessageBox("记录集连接成功!"); } catch(_com_error *e) { AfxMessageBox(e->ErrorMessage()); }

  17. 15)口令验证 if(pSet->adoEOF) { MessageBox("用户名或密码错!,请重输!"); LoginFlag=FALSE; return; } else { LoginFlag=TRUE; MessageBox("密码正确,欢迎进入本系统!!!"); }

  18. 完成实验报告 • 同学们根据以上实验步骤完成“系统登录界面设计”的设计、编码、调试和运行,并完成实验报告。 • 实验报告格式另附。

More Related