MFC - 編輯框
一個**編輯框**是一個矩形的子視窗,使用者可以在其中輸入文字。它由**CEdit 類**表示。
| 序號 |
名稱及描述 |
| 1 |
CanUndo 確定是否可以撤消編輯控制元件的操作。 |
| 2 |
CharFromPos 檢索最接近指定位置的字元的行和字元索引。 |
| 3 |
Clear 刪除(清除)編輯控制元件中的當前選擇(如果有)。 |
| 4 |
Copy 將編輯控制元件中的當前選擇(如果有)複製到剪貼簿中,格式為**CF_TEXT**。 |
| 5 |
Create 建立 Windows 編輯控制元件並將其附加到 CEdit 物件。 |
| 6 |
Cut 刪除(剪下)編輯控制元件中的當前選擇(如果有),並將已刪除的文字複製到剪貼簿中,格式為 CF_TEXT。 |
| 7 |
EmptyUndoBuffer 重置(清除)編輯控制元件的撤消標誌。 |
| 8 |
FmtLines 設定多行編輯控制元件中是否包含軟換行符。 |
| 9 |
GetCueBanner 檢索在編輯控制元件為空且未獲得焦點時顯示為文字提示或提示的文字。 |
| 10 |
GetFirstVisibleLine 確定編輯控制元件中最頂端可見的行。 |
| 11 |
GetHandle 檢索當前為多行編輯控制元件分配的記憶體的控制代碼。 |
| 12 |
GetHighlight 獲取當前編輯控制元件中突出顯示的文字範圍的起始和結束字元的索引。 |
| 13 |
GetLimitText 獲取此**CEdit**可以包含的最大文字量。 |
| 14 |
GetLine 從編輯控制元件中檢索一行文字。 |
| 15 |
GetLineCount 檢索多行編輯控制元件中的行數。 |
| 16 |
GetMargins 獲取此 CEdit 的左右邊距。 |
| 17 |
GetModify 確定編輯控制元件的內容是否已修改。 |
| 18 |
GetPasswordChar 檢索使用者輸入文字時在編輯控制元件中顯示的密碼字元。 |
| 19 |
GetRect 獲取編輯控制元件的格式化矩形。 |
| 20 |
GetSel 獲取編輯控制元件中當前選擇的第一個和最後一個字元位置。 |
| 21 |
HideBalloonTip 隱藏與當前編輯控制元件關聯的任何氣泡提示。 |
| 22 |
LimitText 限制使用者可以輸入到編輯控制元件中的文字長度。 |
| 23 |
LineFromChar 檢索包含指定字元索引的行號。 |
| 24 |
LineIndex 檢索多行編輯控制元件中一行的字元索引。 |
| 25 |
LineLength 檢索編輯控制元件中一行的長度。 |
| 26 |
LineScroll 滾動多行編輯控制元件的文字。 |
| 27 |
Paste 將剪貼簿中的資料插入到編輯控制元件的當前游標位置。僅當剪貼簿包含 CF_TEXT 格式的資料時才插入資料。 |
| 28 |
PosFromChar 檢索指定字元索引左上角的座標。 |
| 29 |
ReplaceSel 用指定的文字替換編輯控制元件中的當前選擇。 |
| 30 |
SetCueBanner 設定在編輯控制元件為空且未獲得焦點時顯示為文字提示或提示的文字。 |
| 31 |
SetHandle 設定多行編輯控制元件將使用的本地記憶體的控制代碼。 |
| 32 |
SetHighlight 突出顯示當前編輯控制元件中顯示的文字範圍。 |
| 33 |
SetLimitText 設定此 CEdit 可以包含的最大文字量。 |
| 34 |
SetMargins 設定此 CEdit 的左右邊距。 |
| 35 |
SetModify 設定或清除編輯控制元件的修改標誌。 |
| 36 |
SetPasswordChar 設定或刪除使用者輸入文字時在編輯控制元件中顯示的密碼字元。 |
| 37 |
SetReadOnly 設定編輯控制元件的只讀狀態。 |
| 38 |
SetRect 設定多行編輯控制元件的格式化矩形並更新控制元件。 |
| 39 |
SetRectNP 設定多行編輯控制元件的格式化矩形,無需重繪控制元件視窗。 |
| 40 |
SetSel 選擇編輯控制元件中的一系列字元。 |
| 41 |
SetTabStops 設定多行編輯控制元件中的製表位。 |
| 42 |
ShowBalloonTip 顯示與當前編輯控制元件關聯的氣泡提示。 |
| 43 |
Undo 反轉上次編輯控制元件操作。 |
| 訊息 |
對映項 |
描述 |
| EN_CHANGE |
ON_EN_CHANGE( <id>, <memberFxn> ) |
使用者執行了可能已更改編輯控制元件中文字的操作。 |
| EN_ERRSPACE |
ON_EN_ERRSPACE( <id>, <memberFxn> ) |
編輯控制元件無法分配足夠的記憶體來滿足特定請求。 |
| EN_HSCROLL |
ON_EN_HSCROLL( <id>, <memberFxn> ) |
使用者單擊編輯控制元件的水平捲軸。在螢幕更新之前通知父視窗。 |
| EN_KILLFOCUS |
ON_EN_KILLFOCUS( <id>, <memberFxn> ) |
編輯控制元件失去輸入焦點。 |
| MAXTEXT |
ON_MAXTEXT( <id>, <memberFxn> ) |
當前插入已超過編輯控制元件指定的字元數,並已被截斷。 |
| EN_SETFOCUS |
ON_EN_SETFOCUS( <id>, <memberFxn> ) |
編輯控制元件獲得輸入焦點時傳送。 |
| EN_UPDATE |
ON_EN_UPDATE( <id>, <memberFxn> ) |
編輯控制元件即將顯示已更改的文字。在控制元件格式化文字之後但螢幕顯示文字之前傳送,以便根據需要更改視窗大小。 |
| EN_VSCROLL |
ON_EN_VSCROLL( <id>, <memberFxn> ) |
使用者單擊編輯控制元件的垂直捲軸。在螢幕更新之前通知父視窗。 |
讓我們透過建立一個新的基於 MFC 對話方塊的專案來了解一個簡單的示例。
**步驟 1** - 刪除靜態文字控制元件的標題,並拖動一個按鈕和一個編輯控制元件。
**步驟 2** - 為編輯控制元件新增一個控制元件變數 m_editCtrl,為靜態文字控制元件新增一個值變數 m_strTextCtrl。
**步驟 3** - 為按鈕單擊事件新增事件處理程式。
**步驟 4** - 以下是按鈕單擊事件的事件處理程式的實現。
void CMFCEditDlg::OnBnClickedButton1() {
// TODO: Add your control notification handler code here
CString str = _T("");
m_editCtrl.GetWindowTextW(str);
if (!str.IsEmpty())
m_strTextCtrl = str;
else
m_strTextCtrl = _T("Write Something");
UpdateData(FALSE);
}
**步驟 5** - 編譯並執行上述程式碼後,您將看到以下內容。
**步驟 6** - 當您在編輯控制元件中寫入文字並單擊“顯示”時,它將更新靜態文字控制元件上的文字。
mfc_windows_controls.htm