资源描述
第2讲制作含编辑框的应用程序,编辑框在Windows风格的应用程序中是随处可见的,当需要获得来自用户的文本信息,或者要让用户输入或编辑文本时,应该使用编辑控件。学习目的:熟悉如何建立工程文件;了解可视化编程的一般方法;项目工作区的使用方法。MFCClassWizard的使用。,2,一、编辑控件的典型应用,3,1编辑框控件简介,编辑框控件具有许多功能,Windows中的记事本(Notepad)应用程序就是一个带有控件菜单的编辑控件,编辑框控件类CEdit的结构较复杂,当创建CEdit对象时,MFC自动赋予该对象一个标准的Windows编辑控件,它定义了CEdit对象,了解!,/剪贴板操作(重要)BOOLUndo();voidClear();voidCopy();voidCut();voidPaste();BOOLSetReadOnly(BOOLbReadOnly=TRUE);intGetFirstVisibleLine()const;TCHARGetPasswordChar()const;/Implementationpublic:virtualCEdit();/虚拟析构函数;,2编辑控件的应用,应用程序的窗口布局如图所示。功能如下:,二、功能设计(1)单击Showl,则在Edit1编辑框中显示“ThisisthefirstEditBox.”(2)单击Clear1,则Edit1编辑框中的内容被清除;(3)单击Show2,在Edit2编辑框中显示“ThisisthesecondEditBox!”(4)单击Clear2,则Edit2编辑框中的内容被清除;(5)单击Transfer,则把Edit1编辑框内容复制到Edit2编辑框中去(6)单击Undo,则取消上一次操作(7)若单击Exit,则退出程序的运行,10,三、具体的编程过程,1建立工程文件,2.可视化编程,3.应用程序的代码编程部分,4.修改编辑框的特性,5.添加代码,编程过程,1建立工程文件,2.可视化编程,生成了工程文件和项目工作区文件后在EditBox的工作区中选择ResourceView,(1)在ResourceView选项卡中打开Dialog资源组,然后双击IDD_EDITBOX_DIALOG。,VC在工作台中显示可以进行可视化编辑的IDD_EDITBOX_DIALOG对话框,把鼠标停在编辑框控件上,即可显示该控件的类型,控件工具窗提供了VC中所有可建立的控件类型,利用控件窗口中的编辑框控件,在对话框中布置如右图所示的编辑框,3应用程序的代码编程部分,(1)给编辑框连接变量,把鼠标移到编辑框EDIT1上,单击鼠标右键,在弹出的快捷菜单中选择ClassWizard命令,此时显示一个ClassWizard对话框,(a)选择MemberVariables选项卡,(b)在ControlIds列表框中单击IDC_EDIT1项,使之高亮化,(c)单击AddVariable按钮,此时显示AddMemberVariable窗口,设置成员变量名为m_Edit1,类别为Control,变量类型为CEdit,注意,不要将m_Edit1设为CString类型,因只有CEdit类型,才能调用CEdit类中的一些成员函数,如Copy(),Paste()等,这样才能完成本应用程序中对Transfer按钮要求复制内容的操作的响应,用同样的方法给编辑框EDIT2等其它对象连接各自的变量,增加变量之后MFCClassWizard窗口将变为下图所示,若此时运行该程序,在Edit文本框中不能进行多行输入,只能单行输入文本,而且按回车键终止应用程序,同时,文本框中也没有水平和垂直滚动条。下面,可完善应用程序中编辑框的特性,使之能够进行多行文本的输入。,4修改编辑框的特性,5添加代码,voidCEditBoxDlg:OnShow1Button()m_Edit1.SetSel(0,-1);/选中编辑框IDC_EDIT1中的全部内容m_Edit1.ReplaceSel(ThisisthefirstEditBox.);,程序中SetSel()函数是CEdit类中的成员函数,因为m_Edit1是属于CEdit类的对象,故可以调用该类所有的成员函数。ReplaceSel()函数也是CEdit类中成员函数。,(1)给Showl按钮连接代码,(2)给Clear1按钮连接代码,VoidCEditBoxDlg:OnClearlButton()m_Edit1.SetSel(0,-1);/表示选中编辑框IDC_EDIT1中的全部内容。m_Edit1.ReplaceSel();/用空字符串代替所选中的文本,即把所选的文本删除掉,(3)给Show2和Clear2按钮连接代码,VoidCEditBoxDlg:OnShow2Button()m_Edit2.SetSel(0,-1);/表示选中编辑框IDC_EDIT2中的全部内容。m_Edit2.ReplaceSel(ThisisthesecondEditBox.);/用新的文本代替所有原有的文本/用新的文本代替所有原有的文本VoidCEditBoxDlg:OnClear2Button()m_Edit2.SetSel(0,-1);/表示选中编辑框IDC_EDIT2中的全部内容。m_Edit2.ReplaceSel();/用空字符串代替所选中的文本,即把所选的文本删除掉,(4)给按钮IDC_Transfer_BUTTON连接代码,voidCEditBoxDlg:OnCopyButton()m_Edit1.SetSel(0,-1);/m_Edit1.Copy();/将m_Editl编辑框中所选的内容拷贝到剪贴板上m_Edit2.SetSel(0,-1);m_Edit2.ReplaceSel();m_Edit2.Paste();/将剪贴板中的内容粘贴到m_Edit2编辑框中,(5)给Undo按钮连接代码,voidCEditBoxDlg:OnUndoButton()m_Edit1.Undo();/Undo()函数是CEdit类中的成员函数,表示取消编辑框中上一次操作m_Edit2.Undo();/编写代码开始,(6)给Exit按钮连接代码,voidCEditBoxDlg:OnOKButton()OnOK();,25,本课小结:制作含编辑框的应用程序,熟悉如何建立工程文件;了解可视化编程的一般方法;项目工作区的使用方法。MFCClassWizard的使用。,本课小结:制作含编辑框的应用程序,编辑控件的具体的编程过程1建立工程文件2.可视化编程(1)在ResourceView选项卡中打开Dialog资源组,然后双击IDD_EDITBOX_DIALOG;(2)利用控件窗口中的编辑框控件;,3应用程序的代码编程部分(1)给编辑框连接变量(a)选择MemberVariables选项卡(b)在ControlIds列表框中单击项,使之高亮化(c)单击AddVariable按钮,AddMemberVariable(2)设置成员变量名为m_Edit1,类别为Control,变量类型为CEdit4修改编辑框的特性5添加代码,作业:阅读VC面向对象与可视化程序设计第226页9.6.3源程序。参考书目:1、黄维通.VC面向对象与可视化程序设计.清华大学.2003.2、Microsoft.MicrosoftDeveloperNetwork.MSDN.2004,
展开阅读全文