MFC-C++登录对话框编写步骤

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1.消息驱动机制基于Windows程序和基于控制台应用程序之间的一个最根本区别,就在于控制台应用程序是通过调用系统的函数来获得用户输入的,而Windows程序则是通过系统发送的消息来处理用户输入的。在Windows操作环境中,无论是系统产生的动作或是用户运行应用程序产生的动作,都称为事件(Events)产生的消息(Message)。例如,在Windows桌面(传统风格)上,双击应用程序的快捷图标,系统就会执行该应用程序。在Windows的应用程序中,也是通过接收消息、分发消息、处理消息来和用户进行交互的。这种消息驱动的机制是Windows编程的最大特点。2.图形设备接口(GDI)在控制台应用程序中,想要在屏幕或打印机上显示或打印一幅图形是一件非常复杂的事件,因为用户必须按照屏幕分辨率模式以及专用绘图函数库调用相应的函数在屏幕上绘图,或根据打印机类型或指令规则向打印机输送数据。而Windows提供了一个抽象的接口,称为图形设备接口(GraphicalDeviceInterface,GDI),使得用户直接利用系统的GDI函数就能方便地实现图形和文本的输出,而不必关心与系统相连的外部设备的类型。3.基于资源的程序设计Windows应用程序常常包含众多图形元素,例如光标、菜单、工具栏、位图、对话框等。每一个这样的资源都用相应的标识符来区分,而且Windows内部也有预定义的资源,例如在Ex_HelloWin中,LoadIcon和LoadCursor函数将系统内部的IDI_APPLICATION(应用程序图标)和IDC_ARROW(箭头光标)作为创建窗口的窗口图标和鼠标指针。4.动态链接库动态链接库提供了一些特定结构的函数,能被应用程序在运行过程中装入和连接,且多个程序可以共享同一个动态链接库,这样就可以大大节省内存和磁盘空间。Windows提供了丰富的应用程序可调用的函数,大多数用于实现其用户界面和在屏幕显示的文本和图形,都是通过动态链接库来实现的。这些动态链接库是一些具有DLL扩展名或者有时是EXE扩展名的文件。3.1创建“登录”对话框3.1.1生成默认对话框工程1.进入VC++安装MicrosoftVisualStudio6.0后,在开始菜单中单击MicrosoftVisualStudio6.0子菜单下的MicrosoftVisualC++6.0,即可打开VC++6.0编程平台,如图3.2所示。图3.2打开VC++6.0编程平台由图3.3所示的各类交互元素组成,其中菜单包含各种编程设计命令,工具栏包括一些命令的快捷按钮和各种导航按钮、搜索框等,视图显示区(项目工作区窗口)将会在建立工程后显示编程视图,程序文本、界面编辑区是主要的工作场所,进行程序的录入和界面的设计。功能菜单工具栏程序文本、界面编辑区视图显示区编译信息显示区图3.3VC++6.0编程平台2.建立管理系统工程选择“文件”→“新建”菜单,在弹出的“新建”对话框中选择“工程”(Project)标签,这时显示出一系列的应用程序项目类型;选择MFCAppWizard(exe)的项目类型(该类型用于创建可执行的Windows应用程序即MFC应用程序,不同于控制台方式的“Win32ConsoleApplication”),并在“工程”(Project)中输入项目名XSCJTEST(为与后文叙述一致,请读者在编程时尽量使用本书定义的名称),在“位置”(Location)处选择或输入工程保存的位置,如图3.4所示。图3.4MFCAppWizard的“新建”对话框单击“确定”按钮,出现如图3.5所示的MFCAppWizard-Step1对话框。图3.5“Step1”对话框3.选择应用程序类型系统显示下列单选钮:S单个文档(SingleDocument)、M多重文档(MultipleDocument)和D基本对话(Dialogbased)。为了建立只有一个“登录”对话框的测试程序,选择“D基本对话”。保留其他的默认选项,单击“完成”按钮,系统出现一个对话框,显示用户在前面步骤中做出的选择,单击“确定”按钮。系统生成默认的基于对话框的对话框应用程序项目,并且进入VC++工程开发环境。此时默认打开“登录”对话框工程XSCJTEST。4.工程开发环境VC++基于对话框的工程开发环境如图3.6所示。资源类别资源标识符项目工作区编辑区工具箱信息显示类、函数的定位插件工具栏(根据安装情况)编译命令菜单图3.6基于对话框的工程1.修改“登录”对话框保留VC默认生成的对话框资源IDD_XSCJTEST_DIALOG不变。如图3.10所示,右键单击Dialog,选择InsertDialog,添加一个新的对话框。图3.10插入新对话框右键单击右边对话框编辑窗口中刚建立的对话框,选择属性,弹出如图3.11所示的窗口。①将对话框标识符改成IDD_LOGIN(在MFC程序中,命名方法要完全遵循C/C++语言的命名规则);②将对话框标题改为“登录学生成绩管理系统”。图3.11修改对话框属性单击“字体”按钮,通过弹出的字体对话框将对话框内的文本设置成“宋体,9”,以使自己的对话框和Windows操作系统中的对话框保持外观上的一致,完成后对话框如图3.12所示。图3.12对话框属性修改后的部分界面2.为“登录”对话框添加控件对话框编辑器最初打开时,控件工具栏是随之出现的,利用此工具栏中各个按钮,可以顺利完成控件的添加。图3.13说明了各个图标按钮所对应的控件类型。控件的选择静态文本组框复选框组合框水平滚动条旋转按钮滑动条列表视图标签复合编辑月历用户定制工具静态图片编辑框按钮单选框列表框垂直滚动条进展条热键树形视图动画日期选择IP地址组合框的扩展图3.13控件工具栏和各按钮含义如图3.14所示,拖放2个静态文本控件、2个图片控件和2个编辑框控件到对话框上,保留系统自动生成的“确定”和“取消”按钮,或者自己重新添加2个新的按钮。图3.14在对话框上添加控件如图3.15所示,右击VC资源视图中的XSCJTESTResources,选择import,选择“文件类型”为所有文件,导入一个bmp格式的图片,VC自动将其命名为IDB_BITMAP1,并保存在资源视图的Bitmap分类下。登录界面.bmp登录界面.bmp图3.15import命令导入图片文件设置左上方图片控件的属性,将General选项卡中的Type设为BITMAP,Image设为IDB_BITMAP1,如图3.16(a)所示,之后图片控件将会显示此图片。对另一个图片控件则拉成细条状,如图3.16(b)设置属性,将General选项卡中的Type设为Frame,并勾选ExtendedStyles选项卡中的StaticEdge项,调整粗细长度作为分隔条。(a)显示图片的图片控件属性(b)用做分割条的图片控件分别右键单击控件,在弹出的属性对话框中,对2个静态文本控件和2个按钮分别命名,即在Caption一栏分别填入标题“用户名”、“密码”、“确认(&Y)”、“取消(&C)”,如图3.16(c)和图3.16(d)所示,其中按钮名称后的(&X)表示此按钮可以使用键盘上的Alt+X组合键作为快捷键。(c)“用户名”静态文本标签(d)“确认”按钮属性如图3.16(e)所示,在“密码”编辑框属性的Styles选项卡中勾选Password。这样,程序运行后,用户输入密码到编辑框时将会显示“***”符号。(e)“密码”编辑框属性图3.16设置控件属性添加的控件可能大小不一,此时可以选定某个控件,移动鼠标到控件边缘处出现双箭头来调整大小。要设置多个控件之间的位置大小关系时,先按住Shift键不放,然后用鼠标选取控件,直到所需要的多个控件选取之后再释放Shift键。若在选取时,对已选取的控件再单击一下,则取消该控件选取。一旦单个控件被选取后,其四周由选择框包围着,选择框上还有几个蓝色实心小方块,拖动它可改变控件的大小;多个控件被选取后,其中只有一个控件的选择框有几个蓝色实心小方块,这个控件称为“主要控件”,而其他控件的选择框的小方块是空心的。如图3.17所示。图3.17设置控件大小和位置在菜单上选择Layout(编排)→Align(对齐),可以选择左、右、上、下对齐,位置以“主要控件”为基准。使用MakeSameSize命令则可以改变其他控件的大小,使其与“主要控件”的尺寸一致。编辑完成后的“登录”对话框如图3.18所示。图3.18“登录”对话框编辑后的最终状态1.为“登录”对话框IDD_LOGIN创建类在应用程序中使用添加的对话框前,须先为该对话框模板创建一个用户对话框类。在对话框资源模板的空白区域(没有其他元素或控件)内双击鼠标,将弹出如图3.19所示的对话框,询问是否为对话框资源创建一个新类。图3.19“AddingaClass”对话框单击“OK”按钮,将弹出如图3.20所示的NewClass对话框。其中,Name框是用来输入用户定义的类名,注意要以“C”字母打头,以保持与VisualC++标识符命名规则一致。FileName框用来指定类的源代码文件名,单击“Change”按钮可改变默认的源文件名称及其在磁盘中的位置。Baseclass和DialogID内容是由系统自动设置的,一般无须修改。从Baseclass框的内容可以看出,用户对话框类是从基类CDialog派生而来的。图3.20“NewClass”对话框2.为“登录”对话框设置控件关联变量使用MFCClassWizard可以很容易地为一个控件定义关联变量并可设置其数据范围。例如,下面的步骤是为CDlgLogin类的控件IDC_EDIT1和IDC_EDIT2即“用户名”和“密码”编辑框添加关联变量m_user和m_pass。(1)按快捷键Ctrl+W,打开MFCClassWizard,并切换到MemberVariables页面,如图3.21所示。图3.21MFCClassWizard的“MemberVariables”页面(2)选定Classname为CDlgLogin,然后在ControlIDs列表中,选定所要关联的控件ID号IDC_EDIT2,双击鼠标左键或单击“AddVariable”按钮,弹出AddMemberVariable对话框,在对话框设置变量的名称、类别和数据类型,如图3.22所示。图3.22“AddMemberVariable”对话框需要说明的是:①对于大多数控件而言,Category框内可选择Value或Control两种类型。Control所对应的变量类型就是MFC为该控件封装的控件类,Value所对应的是数值类型。②不同的控件所提供的关联的数值类型各不相同。例如,对于编辑框来说,Variablestype中的数值类型可以有CString(字符串)、int、UINT、long、DWORD、float、double、BYTE、short、BOOL等。(3)在Membervariablename框中填好与控件相关联的成员变量m_pass,“Category”(分类)选择为Value,“Variabletype”(变量类型)为Cstring,单击“OK”按钮,又回到MFCClassWizard对话框的MemberVariables页面中,以同样方法为IDC_EDIT1控件添加Control分类CEdit变量类型的变量m_user,在ControlIDs列表中出现刚才添加的控件关联变量(或直接称之为“控件变量”)。如果添加的关联变量是一个数值类型,则在MFCClassWizard对话框的MemberVariables页面下方还要求用户输入变量的范围,这就是控件的数据校验设置。例如,我们在下方的MaximumCharacters框中设定m_pass变量允许的最大字符个数为20,即密码不能大于20个字符,如图3.23所示。图3.23添加编辑框的数据成员到这里为止,MFCAppWizard已经根据用户的选择内容和对话框设置自动生成基本的工程框架,在此框架下用户可以编写程序的实现代码。选定“登录”对话框上

1 / 36
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功