1、MFC编写一个简单的登录对话框连数据库编写一个简单的登录对话框大家好,我们利用MFC编写一个简单的登录对话框。主窗体是单文档界面。程序运行的时候,先弹出一个简单的登录对话框,输入用户名和密码后主窗体显示出来。1、开打VC+6.0。点击文件,新建,点击工程中的MFC AppWizard(exe),在右边选择工程保存的位置,并且为工程取好名字。2、点击确定后,选择单个文档,你可以一直点击下一步,直到完成,或者在这里直接点击完成即可,完成后界面如下。3、点击工具栏中的“!”号试着编译运行一次,看是否有问题。如果没有问题,我们继续。点击左边的ResourceView,在Dialog上面鼠标右键单击弹出
2、一弹出框,单击Insert Dialog。4、在右边新增的对话框中,适当改变窗口大小,加入静态文本框和文本编辑框。5、鼠标右键单击刚才加进去的第一个静态文本框控件,点击属性。在弹出的标题中填写:输入用户名:。然后回车同样在下面的第二个静态文本框的属性标题改为:输入密码:。然后回车。6、在第一个文本编辑框上右键单击,点击属性,把ID框中的IDC_EDIT1改为容易理解的名字,如:IDC_EDIT_NAME,注意前面的IDC_EDIT最好不要去掉,这样容易见名而知义。同样,对第二个文本编辑框的属性中的IDC_EDIT2改为:IDC_EDIT_PWD7、在对话框上的任何空白的地方右键单击,点击建立类
3、向导。然后弹出选择建立Create a new class,点击OK。这是为这个对话框创建一个新的类。在Name中,为该对话框类取个名字:CDlg_login。下面的Base class以及Dialog ID不要随便改动。然后点击OK。这样新的类CDlg_login就与本对话框建立起了联系。8、点击OK后,我们并没有退出建立类向导。点击member variables。9、左键双击IDC_EDIT_NAME(或者单击后,点击右边的add variables),为IDC_EDIT_NAME增加一个对应在类中的名字:m_login_name。其他地方不要改动。点击OK。同样也对IDC_EDIT_P
4、WD也取一个名字:m_login_pwd。10、点击确定。这样我们就建立好了登录对话框以及其对应的类CDlg_login。我们在ClassView里面可以看到我们新加入 类CDlg_login。11、我们注意到右边的对话框的标题栏上依然还是Dialog,我们可以在对话框空白的地方单击右键,点击属性,在标题中输入:请登录。其他地方不要改动。12、这个时候如果编译运行的话,该对话框并不会自动弹出来。我们要让程序开始运行的时候自动弹出登录对话框。点击右边的FileView,点击source files,双击MainFrm.cpp。这样在右边就打开了该文件。找到CMainFrame:OnCreate(
5、LPCREATESTRUCT lpCreateStruct),这是窗体框架创建函数。在该函数的后面(在return 0;的前面)加入语句(注意大小写): CDlg_login dlg;/生成一个登录对话框对象 dlg.DoModal();/让对话框对象以有模式形式显示出来这个时候编译肯定会出错,我们要在MainFrm.cpp文件的前面添加:#include dlg_login.h。编译后错误消失。运行结果如下。13、在运行过程中,点击OK后,主窗体会显示出来,我们并没有在用户名以及密码框中输入。下面我们要求输入正确的用户名和密码,主窗体才能显示出来。14、点击左边的ResourceView,双
6、击Dialog中的IDD_DIALOG1,然后双击右边的OK按钮,要求增加一个成员函数,点击OK即可。我们将在下面的截图所在的void CDlg_login:OnOK()函数中进行编程。15、在void CDlg_login:OnOK()函加入如下代码:void CDlg_login:OnOK() / TODO: Add extra validation here this-UpdateData(true); if(this-m_login_name=math & this-m_login_pwd=1234) CDialog:OnOK(); else MessageBox(登录有误);编译运行
7、即可实现我们的要求了。16、等等,我们发现输入密码的时候是明码,不是星号显示的。我们还要在登录对话框的密码文本编辑框的属性中更改。在登录对话框,右键点击密码文本框,点击属性,点击style,选中password回车即可。17、本程序还有很多弊端,比如,关闭登录对话框也可以进行主窗体,点击cancel也可以进入,用户名和密码不能更改,这要求和数据库联系起来。大家可以思考一下,怎么该进。全文完毕。18、现在连接数据库。先利用access建立数据库,名字为book_db,并建好一个管理员表book_admin19、为book_db建立数据源,打开控制面板,点击管理工具,点击打开数据源,添加系统dsn
8、,点击右边的添加,选择Microsoft Access Driver(*.mdb),给数据源取个名字比如:book_db_dsn,然后点击选择,选中刚才建立的book_db保存的位置,选中好该数据库,点击确定即可。最后点击确定完成了数据源的建立。20、在MFC中建立ADO数据库连接在stdafx.h文件中添加对ado的支持:#import C:Program FilesCommon FilesSystemadomsado15.dll no_namespace rename(EOF,adoEOF)#include在CDlg_login.h头文件中添加:_ConnectionPtr m_pConn
9、ection;_RecordsetPtr m_pRecordset;21、连接数据源,在OnOk函数中输入如下:void CDlg_login:OnOK() / TODO: Add extra validation here this-UpdateData(true); :CoInitialize(NULL); this-m_pConnection.CreateInstance(_uuidof(Connection); this-m_pRecordset.CreateInstance(_uuidof(Recordset); this-m_pConnection-Open(DSN=book_db
10、_dsn,0);/上面四行为打开数据源连接 CString str; str.Format(select * from book_admin where admin_name=%s and admin_pwd=%s,this-m_login_name,this-m_login_pwd); BSTR bstrSQL=str.AllocSysString(); this-m_pRecordset-Open(bstrSQL,(IDispatch*)this-m_pConnection,adOpenDynamic,adLockOptimistic,adCmdText); if(!this-m_pRecordset-adoEOF) CDialog:OnOK(); else MessageBox(Failed); this-m_pRecordset-Close(); this-m_pConnection-Close();至此ADO数据源连接完毕。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1