C登录对话框编写步骤实用教案

上传人:s9****2 文档编号:569819997 上传时间:2024-07-31 格式:PPT 页数:37 大小:1.48MB
返回 下载 相关 举报
C登录对话框编写步骤实用教案_第1页
第1页 / 共37页
C登录对话框编写步骤实用教案_第2页
第2页 / 共37页
C登录对话框编写步骤实用教案_第3页
第3页 / 共37页
C登录对话框编写步骤实用教案_第4页
第4页 / 共37页
C登录对话框编写步骤实用教案_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《C登录对话框编写步骤实用教案》由会员分享,可在线阅读,更多相关《C登录对话框编写步骤实用教案(37页珍藏版)》请在金锄头文库上搜索。

1、Windows编程特点(tdin)1消息驱动机制消息驱动机制基于基于Windows程序和基于控制台应用程序之间程序和基于控制台应用程序之间的一个最根本区别,就在于的一个最根本区别,就在于(ziy)控制台应用程序控制台应用程序是通过调用系统的函数来获得用户输入的,而是通过调用系统的函数来获得用户输入的,而Windows程序则是通过系统发送的消息来处理用户程序则是通过系统发送的消息来处理用户输入的。输入的。在在Windows操作环境中,无论是系统产生的动操作环境中,无论是系统产生的动作或是用户运行应用程序产生的动作,都称为事件作或是用户运行应用程序产生的动作,都称为事件(Events)产生的消息(

2、)产生的消息(Message)。例如,在)。例如,在Windows 桌面(传统风格)上,双击应用程序的桌面(传统风格)上,双击应用程序的快捷图标,系统就会执行该应用程序。在快捷图标,系统就会执行该应用程序。在Windows的应用程序中,也是通过接收消息、分发消息、处的应用程序中,也是通过接收消息、分发消息、处理消息来和用户进行交互的。这种消息驱动的机制理消息来和用户进行交互的。这种消息驱动的机制是是Windows编程的最大特点。编程的最大特点。第1页/共36页第一页,共37页。2图形设备接口(图形设备接口(GDI)在控制台应用程序中,想要在屏幕或打印机上显示或在控制台应用程序中,想要在屏幕或打

3、印机上显示或打印一幅图形是一件非常复杂的事件,因为用户必须按打印一幅图形是一件非常复杂的事件,因为用户必须按照屏幕分辨率模式照屏幕分辨率模式(msh)以及专用绘图函数库调用相以及专用绘图函数库调用相应的函数在屏幕上绘图,或根据打印机类型或指令规则应的函数在屏幕上绘图,或根据打印机类型或指令规则向打印机输送数据。而向打印机输送数据。而Windows提供了一个抽象的接口,提供了一个抽象的接口,称为图形设备接口(称为图形设备接口(Graphical Device Interface,GDI),使得用户直接利用系统的),使得用户直接利用系统的GDI函数就能方便地函数就能方便地实现图形和文本的输出,而不

4、必关心与系统相连的外部实现图形和文本的输出,而不必关心与系统相连的外部设备的类型。设备的类型。第2页/共36页第二页,共37页。3基于资源的程序设计 Windows应用程序常常包含众多图形(txng)元素,例如光标、菜单、工具栏、位图、对话框等。每一个这样的资源都用相应的标识符来区分,而且Windows内部也有预定义的资源,例如在Ex_HelloWin中,LoadIcon和LoadCursor函数将系统内部的IDI_APPLICATION(应用程序图标)和IDC_ARROW(箭头光标)作为创建窗口的窗口图标和鼠标指针。第3页/共36页第三页,共37页。4动态链接库动态链接库动态链接库提供了一些

5、特定结构的函数,能被应用程动态链接库提供了一些特定结构的函数,能被应用程序在运行过程中装入和连接序在运行过程中装入和连接(linji),且多个程序可以共,且多个程序可以共享同一个动态链接库,这样就可以大大节省内存和磁盘空享同一个动态链接库,这样就可以大大节省内存和磁盘空间。间。Windows提供了丰富的应用程序可调用的函数,大多提供了丰富的应用程序可调用的函数,大多数用于实现其用户界面和在屏幕显示的文本和图形,都是数用于实现其用户界面和在屏幕显示的文本和图形,都是通过动态链接库来实现的。这些动态链接库是一些具有通过动态链接库来实现的。这些动态链接库是一些具有DLL扩展名或者有时是扩展名或者有时

6、是EXE扩展名的文件。扩展名的文件。第4页/共36页第四页,共37页。任务(rn wu)1、登录窗口的代码实现第5页/共36页第五页,共37页。登录(dn l)窗口的代码实现1、创建“登录”对话框2、设置“登录”对话框类和变量3、编写(binxi)“登录”对话框代码第6页/共36页第六页,共37页。第一(dy)部分 应 用 实 践3.1 3.1 创建创建(chungjin)“(chungjin)“登录登录”对话框对话框3.1.1 3.1.1 生成默认对话框工程生成默认对话框工程1 1进入进入VC+VC+安装安装Microsoft Visual Studio 6.0 Microsoft Visu

7、al Studio 6.0 后,在开始菜单中单击后,在开始菜单中单击Microsoft Visual Studio Microsoft Visual Studio 6.06.0子菜单下的子菜单下的Microsoft Visual C+ 6.0Microsoft Visual C+ 6.0,即可打开,即可打开VC+ 6.0VC+ 6.0编程平台,如图编程平台,如图3.23.2所示。所示。图3.2 打开(d ki)VC+ 6.0第7页/共36页第七页,共37页。3.1.1 生成(shn chn)默认对话框工程编程平台由图3.3所示的各类交互元素组成,其中菜单包含各种编程设计命令,工具栏包括一些命令

8、的快捷按钮和各种导航按钮、搜索框等,视图显示区(项目工作区窗口)将会在建立工程(gngchng)后显示编程视图,程序文本、界面编辑区是主要的工作场所,进行程序的录入和界面的设计。图3.3 VC+ 6.0 编程平台(pngti)第8页/共36页第八页,共37页。3.1.1 生成(shn chn)默认对话框工程2 2建立管理系统工程建立管理系统工程选择选择“文件文件”“”“新建新建”菜单,在弹出的菜单,在弹出的“新建新建”对话框中选择对话框中选择“工程工程”(ProjectProject)标签,)标签,这时显示出一系列的应用程序项目类型;选择这时显示出一系列的应用程序项目类型;选择MFC AppW

9、izard MFC AppWizard (exeexe)的项目类型(该类型用于创)的项目类型(该类型用于创建可执行的建可执行的WindowsWindows应用程序即应用程序即MFCMFC应用程序,不同于控制台方式的应用程序,不同于控制台方式的“Win32 Console “Win32 Console Application”Application”),并在),并在“工程工程”(ProjectProject)中输入项目名)中输入项目名XSCJTESTXSCJTEST(为与后文叙述一致,请读者(为与后文叙述一致,请读者在编程时尽量使用本书定义在编程时尽量使用本书定义(dngy)(dngy)的名称)

10、,在的名称),在“位置位置”(LocationLocation)处选择或输入工程保存的)处选择或输入工程保存的位置,如图位置,如图3.43.4所示。所示。图3.4 MFC AppWizard的“新建”对话框第9页/共36页第九页,共37页。3.1.1 生成(shn chn)默认对话框工程单击“确定(qudng)”按钮,出现如图3.5所示的MFC AppWizard - Step1对话框。图3.5 “Step 1”对话框第10页/共36页第十页,共37页。3.1.1 生成默认(mrn)对话框工程3 3选择应用程序类型选择应用程序类型系统显示下列单选钮:系统显示下列单选钮:S S单个文档(单个文档

11、(Single DocumentSingle Document)、)、M M多重文档(多重文档(Multiple DocumentMultiple Document)和)和D D基本对话(基本对话(Dialog basedDialog based)。)。为了建立只有一个为了建立只有一个“登录登录”对话框的测试程序,选择对话框的测试程序,选择“D“D基本对话基本对话”。保留其他的默认选项,单击保留其他的默认选项,单击“完成完成”按钮,系统出现一个对话框,显示用户在前面步骤中做出按钮,系统出现一个对话框,显示用户在前面步骤中做出的选择,单击的选择,单击“确定确定”按钮。系统生成默认的基于对话框的对

12、话框应用程序项目按钮。系统生成默认的基于对话框的对话框应用程序项目(xingm)(xingm),并且进,并且进入入VC+VC+工程开发环境。此时默认打开工程开发环境。此时默认打开“登录登录”对话框工程对话框工程XSCJTESTXSCJTEST。第11页/共36页第十一页,共37页。3.1.1 生成(shn chn)默认对话框工程4 4工程(gngchng)(gngchng)开发环境VC+VC+基于对话框的工程(gngchng)(gngchng)开发环境如图3.63.6所示。图3.6 基于(jy)对话框的工程第12页/共36页第十二页,共37页。3.1.2 添加(tin ji)“登录”对话框1

13、1修改“登录”对话框保留VCVC默认生成(shn chn)(shn chn)的对话框资源IDD_XSCJTEST_DIALOGIDD_XSCJTEST_DIALOG不变。如图3.103.10所示,右键单击DialogDialog,选择Insert DialogInsert Dialog,添加一个新的对话框。图3.10 插入(ch r)新对话框第13页/共36页第十三页,共37页。3.1.2 添加(tin ji)“登录”对话框右键单击右边对话框编辑窗口中刚建立的对话框,选择属性,弹出如图3.11所示的窗口。将对话框标识符改成IDD_LOGIN(在MFC程序中,命名方法要完全遵循C/C+语言的命名

14、规则(guz));将对话框标题改为“登录学生成绩管理系统”。图3.11 修改(xigi)对话框属性第14页/共36页第十四页,共37页。3.1.2 添加(tin ji)“登录”对话框单击“字体”按钮,通过弹出的字体对话框将对话框内的文本设置成“宋体,9”,以使自己的对话框和Windows操作系统中的对话框保持(boch)外观上的一致,完成后对话框如图3.12所示。图3.12 对话框属性修改(xigi)后的部分界面第15页/共36页第十五页,共37页。3.1.2 添加(tin ji)“登录”对话框2 2为“登录”对话框添加控件对话框编辑器最初打开时,控件工具栏是随之出现的,利用此工具栏中各个按钮

15、,可以(ky)(ky)顺利完成控件的添加。图3.133.13说明了各个图标按钮所对应的控件类型。图3.13 控件工具栏和各按钮含义(hny)第16页/共36页第十六页,共37页。3.1.2 添加(tin ji)“登录”对话框如图3.14所示,拖放2个静态文本控件、2个图片控件和2个编辑框控件到对话框上,保留系统自动生成的“确定”和“取消”按钮,或者(huzh)自己重新添加2个新的按钮。图3.14 在对话框上添加(tin ji)控件第17页/共36页第十七页,共37页。3.1.2 添加(tin ji)“登录”对话框如图3.15所示,右击VC资源视图中的XSCJTEST Resources,选择i

16、mport,选择“文件类型”为所有(suyu)文件,导入一个bmp格式的图片,VC自动将其命名为IDB_BITMAP1,并保存在资源视图的Bitmap分类下。 图3.15 import命令(mng lng)导入图片文件第18页/共36页第十八页,共37页。3.1.2 添加(tin ji)“登录”对话框设置左上方图片控件的属性,将General选项卡中的Type设为BITMAP,Image设为IDB_BITMAP1,如图3.16(a)所示,之后图片控件将会显示此图片。对另一个图片控件则拉成细条状,如图3.16(b)设置属性,将General选项卡中的Type设为Frame,并勾选Extended

17、 Styles选项卡中的Static Edge项,调整(tiozhng)粗细长度作为分隔条。 (a)显示(xinsh)图片的图片控件属性 (b)用做分割条的图片控件第19页/共36页第十九页,共37页。3.1.2 添加(tin ji)“登录”对话框分别右键单击控件,在弹出的属性对话框中,对2个静态文本控件和2个按钮分别命名,即在Caption一栏分别填入标题“用户名”、“密码”、“确认(&Y)”、“取消(&C)”,如图3.16(c)和图3.16(d)所示,其中(qzhng)按钮名称后的(&X)表示此按钮可以使用键盘上的Alt + X组合键作为快捷键。 (c)“用户名”静态文本标签 (d)“确认

18、(qurn)”按钮属性 第20页/共36页第二十页,共37页。3.1.2 添加(tin ji)“登录”对话框如图3.16(e)所示,在“密码”编辑框属性的Styles 选项卡中勾选Password。这样,程序运行后,用户输入(shr)密码到编辑框时将会显示“*”符号。(e)“密码(m m)”编辑框属性图3.16 设置控件属性第21页/共36页第二十一页,共37页。3.1.2 添加(tin ji)“登录”对话框添加的控件可能大小不一,此时可以选定某个控件,移动鼠标到控件边缘处出现双箭头来调整大小。要设置多个控件之间的位置大小关系时,先按住Shift键不放,然后用鼠标选取控件,直到所需要的多个控件

19、选取之后再释放Shift键。若在选取时,对已选取的控件再单击一下,则取消该控件选取。一旦单个控件被选取后,其四周由选择框包围着,选择框上还有几个蓝色实心小方块,拖动它可改变控件的大小;多个控件被选取后,其中只有一个控件的选择框有几个蓝色实心小方块,这个控件称为(chn wi)“主要控件”,而其他控件的选择框的小方块是空心的。如图3.17所示。图3.17 设置控件大小(dxio)和位置第22页/共36页第二十二页,共37页。3.1.2 添加(tin ji)“登录”对话框在菜单上选择Layout(编排)Align(对齐),可以选择左、右、上、下对齐,位置以“主要控件”为基准(jzhn)。使用Mak

20、e Same Size命令则可以改变其他控件的大小,使其与“主要控件”的尺寸一致。编辑完成后的“登录”对话框如图3.18所示。图3.18 “登录”对话框编辑后的最终(zu zhn)状态第23页/共36页第二十三页,共37页。3.2 设置“登录(dn l)”对话框类和变量1 1为“登录”对话框IDD_LOGINIDD_LOGIN创建类在应用程序中使用添加的对话框前,须先为该对话框模板创建一个用户对话框类。在对话框资源模板的空白区域(没有其他元素(yun s)(yun s)或控件)内双击鼠标,将弹出如图3.193.19所示的对话框,询问是否为对话框资源创建一个新类。图3.19 “Adding a

21、Class”对话框第24页/共36页第二十四页,共37页。3.2 设置“登录(dn l)”对话框类和变量单击“OK”按钮,将弹出如图3.20所示的New Class对话框。其中,Name框是用来输入用户定义的类名,注意要以“C”字母打头,以保持与Visual C+标识符命名规则一致。File Name框用来指定(zhdng)类的源代码文件名,单击“Change”按钮可改变默认的源文件名称及其在磁盘中的位置。Base class和Dialog ID内容是由系统自动设置的,一般无须修改。从Base class框的内容可以看出,用户对话框类是从基类CDialog派生而来的。图3.20 “New Cl

22、ass”对话框第25页/共36页第二十五页,共37页。3.2 设置“登录(dn l)”对话框类和变量2 2为为“登录登录”对话框设置控件关联变量对话框设置控件关联变量使用使用MFC ClassWizardMFC ClassWizard可以可以(ky)(ky)很容易地为一个控件定义关联变量并可设置其数据范围。很容易地为一个控件定义关联变量并可设置其数据范围。例如,下面的步骤是为例如,下面的步骤是为CDlgLoginCDlgLogin类的控件类的控件IDC_EDIT1IDC_EDIT1和和IDC_EDIT2IDC_EDIT2即即“用户名用户名”和和“密码密码”编辑编辑框添加关联变量框添加关联变量m

23、_userm_user和和m_passm_pass。(1 1)按快捷键)按快捷键Ctrl + WCtrl + W,打开,打开MFC ClassWizardMFC ClassWizard,并切换到,并切换到Member VariablesMember Variables页面,如图页面,如图3.213.21所示。所示。图3.21 MFC ClassWizard的“Member Variables”页面(y min)第26页/共36页第二十六页,共37页。3.2 设置(shzh)“登录”对话框类和变量(2)选定Class name为CDlgLogin,然后在Control IDs列表(li bio)

24、中,选定所要关联的控件ID号IDC_EDIT2,双击鼠标左键或单击“Add Variable”按钮,弹出Add Member Variable对话框,在对话框设置变量的名称、类别和数据类型,如图3.22所示。图3.22 “Add Member Variable”对话框第27页/共36页第二十七页,共37页。3.2 设置“登录(dn l)”对话框类和变量需要说明的是:对于大多数控件而言,Category框内可选择Value或Control两种类型。Control所对应的变量类型就是MFC为该控件封装的控件类,Value所对应的是数值类型。不同的控件所提供(tgng)的关联的数值类型各不相同。例如

25、,对于编辑框来说,Variables type中的数值类型可以有CString(字符串)、int、UINT、long、DWORD、float、double、BYTE、short、BOOL等。(3)在Member variable name框中填好与控件相关联的成员变量m_pass,“Category”(分类)选择为Value,“Variable type”(变量类型)为Cstring,单击“OK”按钮,又回到MFC ClassWizard对话框的Member Variables页面中,以同样方法为IDC_EDIT1控件添加Control分类CEdit变量类型的变量m_user,在Control

26、 IDs列表中出现刚才添加的控件关联变量(或直接称之为“控件变量”)。第28页/共36页第二十八页,共37页。3.2 设置(shzh)“登录”对话框类和变量如果添加的关联变量是一个数值类型,则在MFC ClassWizard对话框的Member Variables页面下方还要求用户输入变量的范围,这就是(jish)控件的数据校验设置。例如,我们在下方的Maximum Characters框中设定m_pass变量允许的最大字符个数为20,即密码不能大于20个字符,如图3.23所示。图3.23 添加编辑框的数据(shj)成员第29页/共36页第二十九页,共37页。3.3 编写(binxi)“登录”

27、对话框代码到这里为止,MFC AppWizard已经根据用户的选择内容和对话框设置自动生成基本的工程框架,在此框架下用户可以编写程序的实现(shxin)代码。选定“登录”对话框上的“确认”按钮,按Ctrl + W组合键打开MFC ClassWizard,在Messages下选择BN_CLICKED,保持Class Name下的CDlgLogin不变,单击Add Function,创建OnButton1()消息到CDlgLogin类中,如图3.24所示。在Windows操作环境中,无论是系统产生的动作或是用户运行应用程序产生的动作,都称为事件(Events)产生的消息(Message)。例如,在

28、Windows 桌面上双击应用程序的快捷图标,系统就会执行该应用程序。在Windows的应用程序中,也是通过接收消息、分发消息、处理消息来和用户进行交互的。这里的BN_CLICKED消息表示程序运行时单击确认按钮IDC_BUTTON1时的消息。第30页/共36页第三十页,共37页。3.3 编写“登录(dn l)”对话框代码图3.24 创建确认(qurn)按钮事件第31页/共36页第三十一页,共37页。3.3 编写“登录(dn l)”对话框代码(1)在上面的ClassWizard中,单击Edit Code,进入代码编辑状态,添加以下代码。void CDlgLogin:OnButton1() /

29、TODO: Add your control notification handler code hereCString c_user,c_password;/ 将“用户名”和“密码(m m)”编辑框控件的值分别传给字符串变量c_user和c_password/ 这里m_user和 m_password均为Control类型的变量m_user.GetWindowText(c_user);/ GetWindowText()函数m_password.GetWindowText(c_password);if (c_user.IsEmpty() | c_password.IsEmpty()/ 用IsE

30、mpty函数判断用户名和密码(m m)字符串是否为空MessageBox(用户名或密码(m m)不能为空, 用户登录信息); /*MessageBox也是对话框的一种,即消息对话框,与通用对话框相对,可用来提示错误等各种信息或用于测试目的*/return;if (c_user=“123”&c_password=“123”)/ 匹配MessageBox(测试成功!,登录, MB_ICONINFORMATION);/ 提示测试成功else/ 不匹配MessageBox(用户名或密码(m m)不正确.,提示, MB_ICONINFORMATION);return;第32页/共36页第三十二页,共37

31、页。3.3 编写“登录(dn l)”对话框代码(2)现在运行并不能弹出“登录”窗口,而是弹出建立对话框应用程序时默认生成的主对话框IDD_XSCJTEST_DIALOG,即VC由默认代码初始化这个对话框类。切换到ClassView,双击CXSCJTESTApp下的InitInstance,打开InitInstance函数,这是程序启动(qdng)的入口。在文件开头处添加头文件包含代码:#include DlgLogin.h找到其中的代码:CXSCJTESTDlg dlg;将主对话框类CXSCJTESTDlg修改为自己定义的对话框类CDlgLogin,其他代码保持默认:CDlgLogin dlg

32、;/ 改为初始化自定义的类CDlgLogin,即可默认弹出“登录”对话框m_pMainWnd = &dlg;/ 基于对话框应用程序自动使主窗口指针直向主对话框int nResponse = dlg.DoModal();/ 使用DoModal表示实例化模式对话框if (nResponse = IDOK)/ 判断返回值(程序运行时按下的按钮对应的常量值)else if (nResponse = IDCANCEL)第33页/共36页第三十三页,共37页。3.3 编写(binxi)“登录”对话框代码(3)单击编译工具条 上的运行工具按钮“ ”或按快捷键Ctrl+F5,系统开始编译、连接,最后运行对话框

33、应用程序可执行文件XSCJTEST.exe,运行结果和测试效果一致。在弹出的“登录”对话框相应编辑框中输入默认设置的用户名“123”和密码“123”,弹出“登录成功”消息(xio xi)提示.第34页/共36页第三十四页,共37页。任务(rn wu)拓展-设计添加学生信息窗口第35页/共36页第三十五页,共37页。谢谢您的观看(gunkn)!第36页/共36页第三十六页,共37页。内容(nirng)总结Windows编程特点。将对话框标识符改成IDD_LOGIN(在MFC程序中,命名方法(fngf)要完全遵循C/C+语言的命名规则)。Base class和Dialog ID内容是由系统自动设置的,一般无须修改。void CDlgLogin:OnButton1()。#include DlgLogin.h。谢谢您的观看第三十七页,共37页。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号