面向?qū)ο笈c可視化程序設(shè)計(jì)第11章框類及其應(yīng)用_第1頁
面向?qū)ο笈c可視化程序設(shè)計(jì)第11章框類及其應(yīng)用_第2頁
面向?qū)ο笈c可視化程序設(shè)計(jì)第11章框類及其應(yīng)用_第3頁
面向?qū)ο笈c可視化程序設(shè)計(jì)第11章框類及其應(yīng)用_第4頁
面向?qū)ο笈c可視化程序設(shè)計(jì)第11章框類及其應(yīng)用_第5頁
已閱讀5頁,還剩26頁未讀 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

2023/3/171面向?qū)ο笈c可視化

程序設(shè)計(jì)

--VisualC++編程

主講教師:

唐龍教授

(計(jì)算機(jī)科學(xué)與技術(shù)系)

黃維通博士

(計(jì)算機(jī)與信息管理中心)

清華大學(xué)

2001年2月2023/3/172第十一章

編輯框類及其應(yīng)用2023/3/173內(nèi)容提要編輯框類的結(jié)構(gòu)及其方法編輯框類控件的應(yīng)用2023/3/174§11.1.

編輯框類的結(jié)構(gòu)

及其方法2023/3/1751.CEdit類編輯框控件主要功能——輸入或編輯文本編輯框控件單行編輯框控件多行編輯框控件Cedit類是Cwnd類直接派生的。2023/3/1761.CEdit類在MFC\Include\Afxwin.h中定義了Cedit類當(dāng)創(chuàng)建CEdit對(duì)象時(shí),MFC自動(dòng)賦予該對(duì)象一個(gè)標(biāo)準(zhǔn)的Windows編輯控件,它定義了CEdit對(duì)象。classCEdit:publicCWnd{DECLARE_DYNAMIC(CEdit)public:CEdit();//此為構(gòu)造函數(shù)定義,以下定義成員函數(shù)

BOOLCreate(DWORDdwStyle,constRECT&rect,CWnd* pParentWnd,UINTnID);BOOLCanUndo()const;intGetLineCount()const;BOOLGetModify()const;voidSetModify(BOOLbModified=TRUE);voidGetRect(LPRECTlpRect)const;DWORDGetSel()const;voidGetSel(int&nStartChar,int&nEndChar)const;HLOCALGetHandle()const;voidSetHandle(HLOCALhBuffer);CEidt類的定義2023/3/178#if(WINVER>=0x400)voidSetMargins(UINTnLeft,UINTnRight);DWORDGetMargins()const;voidSetLimitText(UINTnMax);UINTGetLimitText()const;CPointPosFromChar(UINTnChar)const;intCharFromPos(CPointpt)const;#endifintGetLine(intnIndex,LPTSTRlpszBuffer)const;intGetLine(intnIndex,LPTSTRlpszBuffer,int nMaxLength)const;//操作

voidEmptyUndoBuffer();BOOLFmtLines(BOOLbAddEOL);lpszBuffer的第一個(gè)字必須是buffer的大小!voidLimitText(intnChars=0);intLineFromChar(intnIndex=-1)const;intLineIndex(intnLine=-1)const;intLineLength(intnLine=-1)const;voidLineScroll(intnLines,intnChars=0);voidReplaceSel(LPCTSTRlpszNewText,BOOLbCanUndo=FALSE);voidSetPasswordChar(TCHARch);voidSetRect(LPCRECTlpRect);voidSetRectNP(LPCRECTlpRect);voidSetSel(DWORDdwSelection,BOOLbNoScroll=FALSE);voidSetSel(intnStartChar,intnEndChar,BOOLbNoScroll=FALSE);BOOLSetTabStops(intnTabStops,LPINTrgTabStops);voidSetTabStops();BOOLSetTabStops(constint&cxEachStop);//takesan'int'//剪貼板操作

BOOLUndo();voidClear();voidCopy();voidCut();voidPaste();BOOLSetReadOnly(BOOLbReadOnly=TRUE);intGetFirstVisibleLine()const;TCHARGetPasswordChar()const;//Implementationpublic:virtual~CEdit();//虛擬析構(gòu)函數(shù)};2023/3/1713§11.2.

編輯框控件的應(yīng)用2023/3/1714[例11-1]設(shè)計(jì)并實(shí)現(xiàn)帶有兩個(gè)編輯框的應(yīng)用程序,其窗口布局如圖11-1,功能如下:?jiǎn)螕鬝howl——Edit1編輯框中顯示“ThisisthefirstEditBox.”單擊Clear1——Edit1編輯框中的內(nèi)容被清除;單擊Show2——Edit2編輯框中顯示“ThisisthesecondEditBox!”單擊Clear2——Edit2編輯框中的內(nèi)容被清除;單擊Transfer——Edit1編輯框的內(nèi)容復(fù)制到Edit2的編輯框中去單擊Undo——取消上一次操作單擊Exit——退出程序的運(yùn)行圖11-1應(yīng)用程序的窗口布局2023/3/17161.編程過程建立工程文件:用MFCAppWizard(exe)工程項(xiàng)目名稱:EditBox建立基于對(duì)話框的應(yīng)用程序,選擇Dialogbased,生成對(duì)話框窗口作為主窗口??梢暬幊?設(shè)計(jì)界面連接變量修改特性添加代碼2.設(shè)計(jì)界面在EditBox的工作區(qū)中選擇ResourceView在名為IDD_EDITBOX_DIALOG的對(duì)話框作為應(yīng)用程序的主窗口中進(jìn)行界面設(shè)計(jì)生成了工程文件和工程工作區(qū)文件后在EditBox的工作區(qū)中選擇ResourceViewVC在工作臺(tái)中顯示可以進(jìn)行可視化編輯的IDD_EDITBOX_DIALOG對(duì)話框,直接利用控件工具窗實(shí)現(xiàn)可視化操作。把鼠標(biāo)停在編輯框控件上,即可顯示該控件的類型??丶ぞ叽疤峁┝薞C中所有可建立的控件類型編輯框控件布置對(duì)話框中如編輯框。將鼠標(biāo)移到Edit1編輯框上;單擊鼠標(biāo)右鍵,并在快捷菜單中選擇Properties命令;在窗口中輸入控件的ID標(biāo)識(shí)值IDC_EDIT1;用同樣的方法設(shè)置其它各個(gè)對(duì)象的屬性。3.給界面對(duì)象連接變量在編輯框EDIT1中,單擊鼠標(biāo)右鍵,在彈出的快捷菜單中,選擇ClassWizard;選擇MemberVariables;單擊IDC_EDIT1;(a)選擇MemberVariables選項(xiàng)卡(b)單擊ControlIds列表框中IDC_EDIT1項(xiàng),使之高亮化(c)單擊AddVariable按鈕,顯示AddMemberVariable窗口單擊AddVariable按鈕,顯示AddMemberVariable窗口;成員變量名設(shè)置為m_Edit1;類別設(shè)置為Control;變量類型設(shè)置為CEdit。注意:只有將m_Edit1設(shè)為CEdit類型,才能調(diào)用該類的Copy(),Paste()等成員函數(shù),實(shí)現(xiàn)本應(yīng)用程序的操作。(d)置MemberVariablesname為m_Edit1(f)置Variabletype為CEdit1(e)置Categroy

為Control用同樣的方法給編輯框EDIT2等其它對(duì)象連接各自的變量;最終,ClassWizard窗口將變?yōu)橄聢D所示。水平及垂直滾動(dòng)條4.修改編輯框的特性在編輯框EDIT1中,單擊鼠標(biāo)右鍵;在快捷菜單中,選Properties命令;選Styles選項(xiàng)卡,進(jìn)行設(shè)置,修改其的特性。用同樣方法修改EDIT2的特性。多行編輯允許回車鍵,可實(shí)現(xiàn)多行文本輸入5.給界面對(duì)象連接函數(shù)添加代碼在按鈕Showl上,單擊鼠標(biāo)右鍵,在彈出的快捷菜單中,選擇ClassWizard;選擇MessageMap;單擊IDC_SHOW1_BUTTON;單擊BN_CLICKED(a)選擇MemberMap選項(xiàng)卡(b)單擊ObjectIds列表框中IDC_SHOW1_BUTTON項(xiàng),(d)單擊AddFunction按鈕,顯示AddMemberFunction窗口(c)單擊Message列表框中BN_CLICKED項(xiàng),單擊AddFunction按鈕,彈出AddMemberFunction窗口接受AddMemberFunction建議的函數(shù)名OnShow1Button();Memberfunctions中增加了成員函數(shù)OnShow1Button();單擊EditCode按鈕,顯示代碼文件,進(jìn)行添加代碼。(e)接受AddMemberFunction建議的函數(shù)名OnShow1Button()(b)Memberfunctions列表框中中增加了成員函數(shù)OnShow1Button()(d)單擊EditCode,

顯示代碼文件,添加代碼voidCEditBoxDlg::OnShow1Button(){ m_Edit1.SetSel(0,-1);//選中編輯框IDC_EDIT1中的全部內(nèi)容

m_Edit1.ReplaceSel("ThisisthefirstEditBox.");//替換內(nèi)容}請(qǐng)注意:程序中SetSel()和

ReplaceSel()都是CEdit類中的成員函數(shù),m_Edit1是屬于CEdit類的對(duì)象,可以調(diào)用之。(1)給Showl按鈕連接代碼(2)給Clear1按鈕連接代碼voidCEditBoxDlg::OnClear1Button(){ 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.");//替換內(nèi)容}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();//取消編輯框中上一次操

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論