CEdit

CEdit類提供了Windows編輯控制項中的功能。編輯控制項是一個子視窗矩形,用戶可以向其中輸入文本。

CEdit

繼承圖表 繼承圖表

可以通過對話模板或直接從代碼中創建一個編輯控制項。在兩種情形下,首先調用CEdit構造程式構造CEdit對象,再調用Create成員函式創建Windows編輯控制項並將其與CEdit對象連線。

構造在CEdit的派生類中可以單步實現。為派生類編寫構造程式並從構造程式中調用Create。

訊息宏

CEdit從CWnd繼承了重要的功能,要在CEdit對象中設定或獲取文本,使用CWnd成員函式SetWindowText和GetWindowText,可以設定和得到編輯控制項的全部內容,即使它是一個多行控制項。如果編輯控制項是多行的,使用CEdit成員函式GetLine,SetSel,GetSel和ReplaceSel來獲取和寫入控制項的部分文本。

如果要處理編輯控制項發往其父類(通常是一個CDialog派生類)的通知訊息,則向父類中為每一訊息添加一個訊息映射入口和訊息處理成員函式。

各訊息映射入口可採用如下形式:

ON_Notification(id,memberFxn)

其中id指定了傳送通知的編輯控制項的子視窗ID,memberFxn為你寫好的處理通知的父成員函式的名字。

父函式形式如下:

afx_msg void memberFxn();

下面是一組可能的訊息映射入口,以及在何種情況下向父類傳送的描述:

ON_EN_CHANGE 用戶採取的行動可能會改變編輯控制項的文本。與EN_UPDATE通知訊息不同,該通知是在Windows更新顯示之後傳送的。

ON_EN_ERRSPACE 編輯控制項不能為特定請求分配足夠的空間。

ON_EN_HSCROLL 用戶單擊了編輯控制項中的水平滾動條,父視窗在螢幕更新之前被通知。

ON_EN_KILLFOCUS 編輯控制項失去輸入焦點。

ON_EN_MAXTEXT 當前輸入超過了為編輯控制項指定的數目,並作截尾處理。

ON_EN_HSCROLL 風格且要輸入的字元會超過編輯控制項的寬度時,傳送訊息。

ON_EN_VSCROLL 風格且要輸入的字元會超過編輯控制項的高度時,傳送訊息。

ON_EN_SETFOCUS 編輯控制項獲得焦點。

ON_EN_UPDATE 編輯控制項將要顯示變動的文本。在控制項對文本格式化之後但在顯示文本之前傳送訊息,以便在必要時改變視窗尺寸。

ON_EN_VSCROLL 用戶單擊了編輯控制項中的垂直滾動條,父視窗在螢幕更新之前被通知。

如果在對話框內創建CEdit對象,CEdit對象在用戶關閉對話框時自動被刪除。

如果使用對話框編輯器從對話資源中創建CEdit對象,CEdit對象在用戶關閉對話框時自動被刪除。

如果在視窗內創建CEdit對象,也需要刪除它。如果在棧上創建CEdit對象,它被自動刪除。如果使用new函式在堆上創建CEdit對象,在用戶中止編輯控制項時,必須對其調用delete來刪除它。如果在CEdit對象中分配存儲空間,覆蓋CEdit析構程式來處理分配情況。

成員

構造函式

CEdit 構造一個CEdit控制項對象

Create 創建一個Windows編輯控制項,並將其與CEdit對象連線。

屬性

CanUndo 決定一個編輯控制項操作是否能夠被撤銷

GetLineCount 獲得多行編輯控制項中的行數

GetModify 決定編輯控制項的內容是否被修改

SetModify 為編輯控制項設定或清除修改標記

GetRect 為編輯控制項獲取格式化的矩形

GetHandle 獲得為當前多行編輯控制項分配的記憶體的句柄

SetHandle 設定為多行編輯控制項使用的本地記憶體的句柄

SetMargins 為CEdit設定左邊和右邊的空白邊界

GetMargins 獲得為CEdit設定左邊和右邊的空白邊界

SetLimitText 設定CEdit能夠容納的文本的最大量

GetLimitText 獲得CEdit能夠容納的文本的最大量

PosFromChar 獲得指定字元索引的左上角的坐標

CharFromPos 獲得最靠近指定位置的字元的行和字元索引

GetLine 從編輯控制項中獲得一行文本

GetPasswordChar 獲得當用戶輸入文本時在編輯控制項中顯示的口令

GetFirstVisibleLeLine 決定在編輯控制項中最頂部的可視的行

操作

EmptyUndoBuffer 重新設定(清除)編輯控制項的撤銷標記

FmtLines 設定在多行編輯控制項中的軟回車打開或關閉

LimitText 用戶在輸入文本時的文本長度限制

LineFromChar 獲得包含指定字元索引的行的數目

LineIndex 獲得在多行編輯控制項中的某行的字元索引

LineLength 獲得編輯控制項中的行的長度

LineScroll 在多行編輯控制項中滾動文本

ReplaceSel 用指定文本覆蓋編輯控制項中當前被選中的文本

SetPasswordChar 設定或清除當用戶輸入文本時在編輯控制項中顯示的口令

SetRect 設定多行編輯控制項的帶格式的矩形,並更新該控制項

SetRectNP 設定多行編輯控制項的帶格式的矩形,而不必重新繪製

SetSel 在編輯控制項中選定文本SetTabStops設定多行編輯控制項的製表鍵停頓位

SetReadOnly 為編輯控制項設定唯讀狀態

剪貼簿操作

Undo 撤銷上一次的編輯控制項操作

Clear 刪除(清除)編輯控制項中當前選中的文本

Copy 將編輯控制項中的當前選中文本以CF_TEXT格式拷貝到剪貼簿中

Cut 刪除編輯控制項中當前選中的文本,並將刪除的文本以CF_TEXT格式拷貝到剪貼簿中

Paste 在當前游標位置插入剪貼簿內的文本。只有在剪貼簿數據為CF_TEXT格式時才進行插入

相關詞條

相關搜尋

熱門詞條

聯絡我們