CEdit
CEdit
CEdit類提供了Windows編輯控制項中的功能。編輯控制項是一個子窗口矩形,用戶可以向其中輸入文本。
繼承圖表
構造在CEdit的派生類中可以單步實現。為派生類編寫構造程序並從構造程序中調用Create。
CEdit從CWnd繼承了重要的功能,要在CEdit對象中設置或獲取文本,使用CWnd成員函數SetWindowText和GetWindowText,可以設置和得到編輯控制項的全部內容,即使它是一個多行控制項。如果編輯控制項是多行的,使用CEdit成員函數GetLine,SetSel,GetSel和ReplaceSel來獲取和寫入控制項的部分文本。
如果要處理編輯控制項發往其父類(通常是一個CDialog派生類)的通知消息,則向父類中為每一消息添加一個消息映射入口和消息處理成員函數。
各消息映射入口可採用如下形式:
ON_Notification(id,memberFxn)
其中id指定了發送通知的編輯控制項的子窗口ID,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格式時才進行插入