面向?qū)ο笈c可視化程序設(shè)計第11章.ppt_第1頁
面向?qū)ο笈c可視化程序設(shè)計第11章.ppt_第2頁
面向?qū)ο笈c可視化程序設(shè)計第11章.ppt_第3頁
面向?qū)ο笈c可視化程序設(shè)計第11章.ppt_第4頁
面向?qū)ο笈c可視化程序設(shè)計第11章.ppt_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、2020/9/11,1,面向?qū)ο笈c可視化程序設(shè)計 -Visual C+ 編程主講教師:唐 龍教授 (計算機科學(xué)與技術(shù)系)黃維通博士 (計算機與信息管理中心)清 華 大 學(xué)2001年2月,2020/9/11,2,第十一章編輯框類及其應(yīng)用,2020/9/11,3,內(nèi)容提要,編輯框類的結(jié)構(gòu)及其方法 編輯框類控件的應(yīng)用,2020/9/11,4,11.1.編輯框類的結(jié)構(gòu)及其方法,2020/9/11,5,1.CEdit類,編輯框控件主要功能輸入或編輯文本 編輯框控件 單行編輯框控件 多行編輯框控件 Cedit類是Cwnd類直接派生的。,2020/9/11,6,1.CEdit類,在MFCIncludeAfx

2、win.h中定義了Cedit類 當(dāng)創(chuàng)建CEdit對象時,MFC自動賦予該對象一個標(biāo)準(zhǔn)的Windows編輯控件,它定義了CEdit對象。,class CEdit : public CWnd DECLARE_DYNAMIC(CEdit) public: CEdit(); /此為構(gòu)造函數(shù)定義,以下定義成員函數(shù) BOOL Create(DWORD dwStyle, const RECT,CEidt類的定義,2020/9/11,8,#if (WINVER = 0 x400) void SetMargins(UINT nLeft, UINT nRight); DWORD GetMargins() cons

3、t; void SetLimitText(UINT nMax); UINT GetLimitText() const; CPoint PosFromChar(UINT nChar) const; int CharFromPos(CPoint pt) const; #endif int GetLine(int nIndex, LPTSTR lpszBuffer) const; int GetLine(int nIndex, LPTSTR lpszBuffer, int nMaxLength) const; / 操作 void EmptyUndoBuffer(); BOOL FmtLines(BO

4、OL bAddEOL);,lpszBuffer的第一個字必須 是 buffer的大小!,void LimitText(int nChars = 0); int LineFromChar(int nIndex = -1) const; int LineIndex(int nLine = -1) const; int LineLength(int nLine = -1) const; void LineScroll(int nLines, int nChars = 0); void ReplaceSel(LPCTSTR lpszNewText, BOOL bCanUndo = FALSE); vo

5、id SetPasswordChar(TCHAR ch); void SetRect(LPCRECT lpRect); void SetRectNP(LPCRECT lpRect); void SetSel(DWORD dwSelection, BOOL bNoScroll = FALSE); void SetSel(int nStartChar, int nEndChar, BOOL bNoScroll = FALSE); BOOL SetTabStops(int nTabStops, LPINT rgTabStops); void SetTabStops(); BOOL SetTabSto

6、ps(const int / takes an int,/ 剪貼板操作 BOOL Undo(); void Clear(); void Copy(); void Cut(); void Paste(); BOOL SetReadOnly(BOOL bReadOnly = TRUE); int GetFirstVisibleLine() const; TCHAR GetPasswordChar() const; / Implementation public: virtual CEdit(); /虛擬析構(gòu)函數(shù) ;,2020/9/11,13,11.2.編輯框控件的應(yīng)用,2020/9/11,14,例

7、11-1設(shè)計并實現(xiàn)帶有兩個編輯框的應(yīng)用程序,其窗口布局如 圖11-1,功能如下: 單擊ShowlEdit1編輯框中顯示“This is the first EditBox.” 單擊Clear1Edit1編輯框中的內(nèi)容被清除; 單擊Show2Edit2編輯框中顯示“This is the second EditBox!” 單擊Clear2Edit2編輯框中的內(nèi)容被清除; 單擊TransferEdit1編輯框的內(nèi)容復(fù)制到Edit2的編輯框中去 單擊Undo取消上一次操作 單擊Exit退出程序的運行,圖11-1 應(yīng)用程序的窗口布局,2020/9/11,16,1.編程過程,建立工程文件:用MFC Ap

8、pWizard(exe) 工程項目名稱:EditBox 建立基于對話框的應(yīng)用程序,選擇Dialog based,生成對話框窗口作為主窗口。 可視化編程: 設(shè)計界面 連接變量 修改特性 添加代碼,2.設(shè)計界面,在EditBox的工作區(qū)中選擇Resource View 在名為IDD_EDITBOX_DIALOG的對話框作為應(yīng)用程序的主窗口中進(jìn)行界面設(shè)計,生成了工程文件和 工程工作區(qū)文件后 在EditBox的工作區(qū) 中選擇ResourceView,VC在工作臺中顯示可以進(jìn)行可視化編輯的IDD_EDITBOX_DIALOG對話框,直接利用控件工具窗實現(xiàn)可視化操作。,把鼠標(biāo)停在 編輯框控件 上,即可顯

9、示該控件的 類型。,控件工具窗 提供了VC中 所有可建立 的控件類型,編輯框控件布置對話框中如編輯框。,將鼠標(biāo)移到Edit1編輯框上; 單擊鼠標(biāo)右鍵,并在快捷菜單中選擇Properties命令; 在窗口中輸入控件的ID標(biāo)識值IDC_EDIT1; 用同樣的方法設(shè)置其它各個對象的屬性。,3.給界面對象連接變量,在編輯框EDIT1中,單擊鼠標(biāo)右鍵,在彈出的快捷菜單中,選擇ClassWizard; 選擇Member Variables; 單擊IDC_EDIT1;,(a)選擇Member Variables選項卡,(b)單擊Control Ids列表 框中IDC_EDIT1項, 使之高亮化,(c) 單擊

10、Add Variable 按鈕,顯示Add MemberVariable窗口,單擊Add Variable按鈕,顯示AddMemberVariable窗口; 成員變量名設(shè)置為m_Edit1; 類別設(shè)置為Control; 變量類型設(shè)置為CEdit。,注意:只有將m_Edit1設(shè)為CEdit 類型,才能調(diào)用該類的Copy () , Paste () 等成員函數(shù),實現(xiàn)本應(yīng)用程序的操作。,(d)置Member Variables name 為m_Edit1,(f)置 Variable type為CEdit1,(e)置Categroy 為Control,用同樣的方法給編輯框EDIT2等其它對象連接各自的

11、變量; 最終,ClassWizard窗口將變?yōu)橄聢D所示。,水平及垂 直滾動條,4 .修改編輯框的特性,在編輯框EDIT1中,單擊鼠標(biāo)右鍵; 在快捷菜單中,選Properties命令; 選Styles選項卡,進(jìn)行設(shè)置,修改其的特性。 用同樣方法修改EDIT2的特性。,多行 編輯,允許回車鍵,可實現(xiàn)多行文本輸入,5 . 給界面對象連接函數(shù)添加代碼,在按鈕Showl上,單擊鼠標(biāo)右鍵,在彈出的快捷菜單中,選擇ClassWizard; 選擇Message Map; 單擊IDC_SHOW1_BUTTON; 單擊BN_CLICKED,(a)選擇Member Map選項卡,(b)單擊Object Ids列表框

12、中 IDC_SHOW1_BUTTON項,,(d) 單擊Add Function 按鈕,顯示Add MemberFunction窗口,(c)單擊Message列表框 中BN_CLICKED項,,單擊Add Function按鈕,彈出Add Member Function窗口 接受Add Member Function建議的函數(shù)名OnShow1Button(); Member functions中增加了成員函數(shù)OnShow1Button(); 單擊Edit Code按鈕, 顯示代碼文件,進(jìn)行添加代碼。,(e)接受Add Member Function建議的函數(shù) 名OnShow1Button(),(

13、b) Member functions 列表框中中增加了成員 函數(shù)OnShow1Button(),(d) 單擊Edit Code, 顯示代碼文件, 添加代碼,void CEditBoxDlg:OnShow1Button() m_Edit1.SetSel(0,-1); /選中編輯框IDC_EDIT1中的全部內(nèi)容 m_Edit1.ReplaceSel(This is the first EditBox.);/替換內(nèi)容 請注意:程序中SetSel()和 ReplaceSel()都是CEdit類中的成員函數(shù),m_Edit1是屬于CEdit類的對象,可以調(diào)用之。,(1) 給Showl按鈕連接代碼,(2)

14、 給 Clear1按鈕連接代碼,void CEditBoxDlg:OnClear1Button() m_Edit1.SetSel(0,-1);/選中編輯框IDC_EDIT1中的全部內(nèi)容 m_Edit1.ReplaceSel();/用空字符串代替所選文本,即刪除之 ,(3)給Show2和Clear2按鈕連接代碼,void CEditBoxDlg:OnShow2Button() m_Edit2.SetSel(0,-1);/選中編輯框IDC_EDIT2中的全部內(nèi)容。 m_Edit2.ReplaceSel(This is the second EditBox.); /替換內(nèi)容 void CEditBo

15、xDlg:OnClear2Button() m_Edit2.SetSel(0,-1);/選中編輯框IDC_EDIT2中的全部內(nèi)容。 m_Edit2.ReplaceSel();/用空字符串代替所選文本,即刪除之 ,(4)給按鈕IDC_Transfer_BUTTON連接代碼,void CEditBoxDlg: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按鈕連接代碼,void CEditBoxDlg:OnUndoButton() m_Edit1.Undo();/ 取消編輯框中上一次操作 m_Edi

溫馨提示

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

評論

0/150

提交評論