制作含編輯框應(yīng)用程序.ppt
第2講制作含編輯框的應(yīng)用程序,編輯框在Windows風(fēng)格的應(yīng)用程序中是隨處可見的,當(dāng)需要獲得來自用戶的文本信息,或者要讓用戶輸入或編輯文本時,應(yīng)該使用編輯控件。學(xué)習(xí)目的:熟悉如何建立工程文件;了解可視化編程的一般方法;項目工作區(qū)的使用方法。MFCClassWizard的使用。,2,一、編輯控件的典型應(yīng)用,3,1編輯框控件簡介,編輯框控件具有許多功能,Windows中的記事本(Notepad)應(yīng)用程序就是一個帶有控件菜單的編輯控件,編輯框控件類CEdit的結(jié)構(gòu)較復(fù)雜,當(dāng)創(chuàng)建CEdit對象時,MFC自動賦予該對象一個標準的Windows編輯控件,它定義了CEdit對象,了解!,/剪貼板操作(重要)BOOLUndo();voidClear();voidCopy();voidCut();voidPaste();BOOLSetReadOnly(BOOLbReadOnly=TRUE);intGetFirstVisibleLine()const;TCHARGetPasswordChar()const;/Implementationpublic:virtualCEdit();/虛擬析構(gòu)函數(shù);,2編輯控件的應(yīng)用,應(yīng)用程序的窗口布局如圖所示。功能如下:,二、功能設(shè)計(1)單擊Showl,則在Edit1編輯框中顯示“ThisisthefirstEditBox.”(2)單擊Clear1,則Edit1編輯框中的內(nèi)容被清除;(3)單擊Show2,在Edit2編輯框中顯示“ThisisthesecondEditBox!”(4)單擊Clear2,則Edit2編輯框中的內(nèi)容被清除;(5)單擊Transfer,則把Edit1編輯框內(nèi)容復(fù)制到Edit2編輯框中去(6)單擊Undo,則取消上一次操作(7)若單擊Exit,則退出程序的運行,10,三、具體的編程過程,1建立工程文件,2.可視化編程,3.應(yīng)用程序的代碼編程部分,4.修改編輯框的特性,5.添加代碼,編程過程,1建立工程文件,2.可視化編程,生成了工程文件和項目工作區(qū)文件后在EditBox的工作區(qū)中選擇ResourceView,(1)在ResourceView選項卡中打開Dialog資源組,然后雙擊IDD_EDITBOX_DIALOG。,VC在工作臺中顯示可以進行可視化編輯的IDD_EDITBOX_DIALOG對話框,把鼠標停在編輯框控件上,即可顯示該控件的類型,控件工具窗提供了VC中所有可建立的控件類型,利用控件窗口中的編輯框控件,在對話框中布置如右圖所示的編輯框,3應(yīng)用程序的代碼編程部分,(1)給編輯框連接變量,把鼠標移到編輯框EDIT1上,單擊鼠標右鍵,在彈出的快捷菜單中選擇ClassWizard命令,此時顯示一個ClassWizard對話框,(a)選擇MemberVariables選項卡,(b)在ControlIds列表框中單擊IDC_EDIT1項,使之高亮化,(c)單擊AddVariable按鈕,此時顯示AddMemberVariable窗口,設(shè)置成員變量名為m_Edit1,類別為Control,變量類型為CEdit,注意,不要將m_Edit1設(shè)為CString類型,因只有CEdit類型,才能調(diào)用CEdit類中的一些成員函數(shù),如Copy(),Paste()等,這樣才能完成本應(yīng)用程序中對Transfer按鈕要求復(fù)制內(nèi)容的操作的響應(yīng),用同樣的方法給編輯框EDIT2等其它對象連接各自的變量,增加變量之后MFCClassWizard窗口將變?yōu)橄聢D所示,若此時運行該程序,在Edit文本框中不能進行多行輸入,只能單行輸入文本,而且按回車鍵終止應(yīng)用程序,同時,文本框中也沒有水平和垂直滾動條。下面,可完善應(yīng)用程序中編輯框的特性,使之能夠進行多行文本的輸入。,4修改編輯框的特性,5添加代碼,voidCEditBoxDlg:OnShow1Button()m_Edit1.SetSel(0,-1);/選中編輯框IDC_EDIT1中的全部內(nèi)容m_Edit1.ReplaceSel("ThisisthefirstEditBox.");,程序中SetSel()函數(shù)是CEdit類中的成員函數(shù),因為m_Edit1是屬于CEdit類的對象,故可以調(diào)用該類所有的成員函數(shù)。ReplaceSel()函數(shù)也是CEdit類中成員函數(shù)。,(1)給Showl按鈕連接代碼,(2)給Clear1按鈕連接代碼,VoidCEditBoxDlg:OnClearlButton()m_Edit1.SetSel(0,-1);/表示選中編輯框IDC_EDIT1中的全部內(nèi)容。m_Edit1.ReplaceSel("");/用空字符串代替所選中的文本,即把所選的文本刪除掉,(3)給Show2和Clear2按鈕連接代碼,VoidCEditBoxDlg:OnShow2Button()m_Edit2.SetSel(0,-1);/表示選中編輯框IDC_EDIT2中的全部內(nèi)容。m_Edit2.ReplaceSel("ThisisthesecondEditBox.");/用新的文本代替所有原有的文本/用新的文本代替所有原有的文本VoidCEditBoxDlg:OnClear2Button()m_Edit2.SetSel(0,-1);/表示選中編輯框IDC_EDIT2中的全部內(nèi)容。m_Edit2.ReplaceSel("");/用空字符串代替所選中的文本,即把所選的文本刪除掉,(4)給按鈕IDC_Transfer_BUTTON連接代碼,voidCEditBoxDlg:OnCopyButton()m_Edit1.SetSel(0,-1);/m_Edit1.Copy();/將m_Editl編輯框中所選的內(nèi)容拷貝到剪貼板上m_Edit2.SetSel(0,-1);m_Edit2.ReplaceSel("");m_Edit2.Paste();/將剪貼板中的內(nèi)容粘貼到m_Edit2編輯框中,(5)給Undo按鈕連接代碼,voidCEditBoxDlg:OnUndoButton()m_Edit1.Undo();/Undo()函數(shù)是CEdit類中的成員函數(shù),表示取消編輯框中上一次操作m_Edit2.Undo();/編寫代碼開始,(6)給Exit按鈕連接代碼,voidCEditBoxDlg:OnOKButton()OnOK();,25,本課小結(jié):制作含編輯框的應(yīng)用程序,熟悉如何建立工程文件;了解可視化編程的一般方法;項目工作區(qū)的使用方法。MFCClassWizard的使用。,本課小結(jié):制作含編輯框的應(yīng)用程序,編輯控件的具體的編程過程1建立工程文件2.可視化編程(1)在ResourceView選項卡中打開Dialog資源組,然后雙擊IDD_EDITBOX_DIALOG;(2)利用控件窗口中的編輯框控件;,3應(yīng)用程序的代碼編程部分(1)給編輯框連接變量(a)選擇MemberVariables選項卡(b)在ControlIds列表框中單擊項,使之高亮化(c)單擊AddVariable按鈕,AddMemberVariable(2)設(shè)置成員變量名為m_Edit1,類別為Control,變量類型為CEdit4修改編輯框的特性5添加代碼,作業(yè):閱讀VC面向?qū)ο笈c可視化程序設(shè)計第226頁9.6.3源程序。參考書目:1、黃維通.VC面向?qū)ο笈c可視化程序設(shè)計.清華大學(xué).2003.2、Microsoft.MicrosoftDeveloperNetwork.MSDN.2004,