編輯控制件 (Windows 控制件)

本節包含與編輯控件搭配使用之程式設計專案的相關信息。 編輯控制項是一個矩形控制元件視窗,通常用於對話框中,允許使用者在鍵盤上輸入和編輯文字。

概觀

主題 目錄
關於編輯控制件 編輯控制項是一個矩形控制元件視窗,通常用於對話框中,讓使用者能夠輸入和編輯文字。
編輯控件文字作業 系統會自動處理所有使用者起始的文字作業,並在作業完成時通知應用程式。
使用編輯控制件 編輯控制項通常用於對話框,但您也可以在標準視窗的工作區中使用它們。 單行編輯控件對於從用戶擷取單一字串很有用。 多行編輯控制項可讓您的應用程式輕鬆地實作簡單字處理器的大部分功能。

函式

主題 目錄
EditWordBreakProc 與EM_SETWORDBREAKPROC訊息搭配使用的應用程式定義回呼函式。 多行編輯控件或豐富的編輯控件會呼叫 EditWordBreakProc 函式來中斷文字行。
EDITWORDBREAKPROC 類型會定義這個回呼函式的指標。 EditWordBreakProc 是應用程式定義函數名稱的佔位元。

巨集

主題 目錄
Edit_CanUndo 判斷編輯或豐富編輯控制件的復原佇列中是否有任何動作。 您可以使用這個宏,或明確傳送 EM_CANUNDO 訊息。
Edit_EmptyUndoBuffer 重設編輯或豐富編輯控件的復原旗標。 每當編輯控件內的作業可以復原時,就會設定復原旗標。 您可以使用這個宏,或明確傳送 EM_EMPTYUNDOBUFFER 訊息。
Edit_Enable 啟用或停用編輯控制件。
Edit_FmtLines 設定旗標,判斷從多行編輯控件擷取的文字是否包含虛換行符。 虛換行符是由兩個歸位字元和換行字元所組成,而且會插入因為文字包裝而中斷的行尾。 您可以使用這個宏,或明確傳送 EM_FMTLINES 訊息。
Edit_GetCaretIndex 取得編輯控制件中插入號位置之以零起始的索引。 您可以使用這個宏,或明確傳送 EM_GETCARETINDEX 訊息。
Edit_GetCueBannerText 取得在編輯控件中顯示為文字提示或提示的文字。 您可以使用這個宏,或明確傳送 EM_GETCUEBANNER 訊息。
Edit_GetEndOfLine 取得指定之編輯控制件的行尾字元。 使用此宏或明確傳送 EM_GETENDOFLINE 訊息。
Edit_GetExtendedStyle 取得指定之編輯控制件的延伸樣式。 使用此宏或明確傳送 EM_GETEXTENDEDSTYLE 訊息。
Edit_GetFirstVisibleLine 取得多行編輯或豐富編輯控制件中最上層可見線條的索引。 您可以使用這個宏,或明確傳送 EM_GETFIRSTVISIBLELINE 訊息。
Edit_GetHandle 取得目前配置給多行編輯控件文字之內存的句柄。 您可以使用這個宏,或明確傳送 EM_GETHANDLE 訊息。
Edit_GetHilite 未實作。
Edit_GetLine 從編輯或豐富編輯控件擷取文字行。 您可以使用這個宏,或明確傳送 EM_GETLINE 訊息。
Edit_GetLineCount 取得編輯控件文字中的行數。 您可以使用這個宏,或明確傳送 EM_GETLINECOUNT 訊息。
Edit_GetModify 取得編輯或豐富編輯控件修改旗標的狀態。 旗標會指出控件的內容是否已修改。 您可以使用這個宏,或明確傳送 EM_GETMODIFY 訊息。
Edit_GetPasswordChar 取得編輯或豐富編輯控制件的密碼字元。 您可以使用這個宏,或明確傳送 EM_GETPASSWORDCHAR 訊息。
Edit_GetRect 取得編輯控制件的格式設定矩形。 您可以使用這個宏,或明確傳送 EM_GETRECT 訊息。
Edit_GetSel 取得編輯或豐富編輯控制件中目前選取範圍的開始和結束字元位置。 您可以使用這個宏,或明確傳送 EM_GETSEL 訊息。
Edit_GetText 取得編輯控制件的文字。
Edit_GetTextLength 取得編輯控制項文字中的字元數。
Edit_GetWordBreakProc 擷取編輯或豐富編輯控制項 Wordwrap 函式的位址。 您可以使用這個宏,或明確傳送 EM_GETWORDBREAKPROC 訊息。
Edit_GetZoom 取得目前的縮放比例,其一律介於 1/64 和 64 之間。 您可以使用這個宏,或明確傳送 EM_GETZOOM 訊息。
Edit_HideBalloonTip 隱藏與編輯控件相關聯的任何氣球提示。 您可以使用這個宏,或明確傳送 EM_HIDEBALLOONTIP 訊息。
Edit_LimitText 限制可以輸入至編輯控件的文字長度。 您可以使用這個宏,或明確傳送 EM_LIMITTEXT 訊息。
Edit_LineFromChar 取得包含多行編輯或豐富編輯控制項中指定字元索引的行索引。 您可以使用這個宏,或明確傳送 EM_LINEFROMCHAR 訊息。
Edit_LineIndex 取得多行編輯或豐富編輯控制項中指定行之第一個字元的字元索引。 您可以使用這個宏,或明確傳送 EM_LINEINDEX 訊息。
Edit_LineLength 擷取編輯或豐富編輯控件中行的長度,以字元為單位。 您可以使用這個宏,或明確傳送 EM_LINELENGTH 訊息。
Edit_NoSetFocus 適用於內部用途;不建議在應用程式中使用。
防止單行編輯控制件接收鍵盤焦點。 您可以使用這個宏,或明確傳送 EM_NOSETFOCUS 訊息。
Edit_ReplaceSel 以指定的文字取代編輯控制項或豐富的編輯控制項中選取的文字。 您可以使用這個宏,或明確傳送 EM_REPLACESEL 訊息。
Edit_Scroll 在多行編輯或豐富編輯控件中垂直捲動文字。 您可以使用這個宏,或明確傳送 EM_SCROLL 訊息。
Edit_ScrollCaret 將插入號捲動到編輯或豐富編輯控件的檢視中。 您可以使用這個宏,或明確傳送 EM_SCROLLCARET 訊息。
Edit_SetCaretIndex 設定編輯控制項中插入號位置之以零起始的索引。 您可以使用這個宏,或明確傳送 EM_SETCARETINDEX 訊息。
Edit_SetCueBannerText 設定編輯控件顯示為文字提示或提示的文字。 您可以使用這個宏,或明確傳送 EM_SETCUEBANNER 訊息。
Edit_SetCueBannerTextFocused 設定編輯控件顯示為文字提示或提示的文字。 您可以使用這個宏,或明確傳送 EM_SETCUEBANNER 訊息。
Edit_SetEndOfLine 設定指定編輯控制件的行尾字元。 使用此宏或明確傳送 EM_SETENDOFLINE 訊息。
Edit_SetExtendedStyle 設定指定之編輯控制件的延伸樣式。 使用此宏或明確傳送 EM_SETEXTENDEDSTYLE 訊息。
Edit_SetHandle 設定多行編輯控制項將使用之內存的句柄。 您可以使用這個宏,或明確傳送 EM_SETHANDLE 訊息。
Edit_SetHilite 未實作。
Edit_SetModify 設定或清除編輯控件的修改旗標。 修改旗標會指出編輯控件內的文字是否已修改。 您可以使用這個宏,或明確傳送 EM_SETMODIFY 訊息。
Edit_SetPasswordChar 設定或移除編輯或豐富編輯控制件的密碼字元。 設定密碼字元時,會顯示該字元來取代使用者輸入的字元。 您可以使用這個宏,或明確傳送 EM_SETPASSWORDCHAR 訊息。
Edit_SetReadOnly 設定或移除編輯或豐富編輯控制件的唯讀樣式(ES_READONLY)。 您可以使用這個宏,或明確傳送 EM_SETREADONLY 訊息。
Edit_SetRect 設定編輯控制件的格式設定矩形。 您可以使用這個宏,或明確傳送 EM_SETRECT 訊息。
Edit_SetRectNo小畫家 設定多行編輯控制件的格式矩形。 這個宏相當於 Edit_SetRect,不同之處在於它不會重新繪製編輯控件視窗。 您可以使用這個宏,或明確傳送 EM_SETRECTNP 訊息。
Edit_SetSel 選取編輯或豐富編輯控制件中的字元範圍。 您可以使用這個宏,或明確傳送 EM_SETSEL 訊息。
Edit_SetTabStops 設定多行編輯或豐富編輯控制件中的製表位。 當文字複製到 控件時,文字中的任何製表符都會產生空格到下一個製表位。 您可以使用這個宏,或明確傳送 EM_SETTABSTOPS 訊息。
Edit_SetText 設定編輯控制件的文字。
Edit_SetWordBreakProc 將編輯控制元件的預設 Wordwrap 函式取代為應用程式定義的 Wordwrap 函式。 您可以使用這個宏,或明確傳送 EM_SETWORDBREAKPROC 訊息。
Edit_SetZoom 設定介於 1/64 和 64 之間的縮放比例。 您可以使用這個宏,或明確傳送 EM_SETZOOM 訊息。
Edit_ShowBalloonTip 顯示與編輯控件相關聯的氣球提示。 您可以使用這個宏,或明確傳送 EM_SHOWBALLOONTIP 訊息。
Edit_TakeFocus 適用於內部用途;不建議在應用程式中使用。
強制單行編輯控制件接收鍵盤焦點。 您可以使用這個宏,或明確傳送 EM_TAKEFOCUS 訊息。
Edit_Undo 復原編輯或豐富編輯控件之復原佇列中的最後一個作業。 您可以使用這個宏,或明確傳送 EM_UNDO 訊息。

訊息

主題 目錄
EM_CANUNDO 判斷編輯控件的復原佇列中是否有任何動作。 您可以將此訊息傳送至編輯控制項或豐富的編輯控制件。
EM_CHARFROMPOS 取得與編輯控制項工作區中指定點最接近之字元的資訊。 您可以將此訊息傳送至編輯控制項或豐富的編輯控制件。
EM_EMPTYUNDOBUFFER 重設編輯控件的復原旗標。 每當編輯控件內的作業可以復原時,就會設定復原旗標。 您可以將此訊息傳送至編輯控制項或豐富的編輯控制件。
EM_FMTLINES 設定旗標,判斷多行編輯控件是否包含虛換行符。 虛換行符是由兩個歸位字元和換行字元所組成,而且會插入因為文字包裝而中斷的行尾。
EM_GETCARETINDEX 取得編輯控制件中插入號位置之以零起始的索引。
EM_GETCUEBANNER 取得在編輯控件中顯示為文字提示或提示的文字。
EM_GETENDOFLINE 取得指定之編輯控制件的行尾字元。 您可以明確傳送此訊息,或使用 Edit_GetEndOfLine 宏。
EM_GETEXTENDEDSTYLE 取得編輯控制件的延伸樣式。 使用 Edit_GetExtendedStyle 宏明確傳送此訊息。
EM_GETFIRSTVISIBLELINE 取得多行編輯控制件中最上層可見線條的以零起始的索引。 您可以將此訊息傳送至編輯控制項或豐富的編輯控制件。
EM_GETHANDLE 取得目前為多行編輯控件文字配置的記憶體句柄。
EM_GETHILITE 未實作。
EM_GETIMESTATUS 取得一組狀態旗標,指出編輯控件如何與輸入法編輯器 (IME) 互動。
EM_GETLIMITTEXT 取得編輯控制件的目前文字限制。 您可以將此訊息傳送至編輯控制項或豐富的編輯控制件。
EM_GETLINE 從編輯控制項複製一行文字,並將它放在指定的緩衝區中。 您可以將此訊息傳送至編輯控制項或豐富的編輯控制件。
EM_GETLINECOUNT 取得多行編輯控制件中的行數。 您可以將此訊息傳送至編輯控制項或豐富的編輯控制件。
EM_GETMARGINS 取得編輯控制件的左右邊界寬度。
EM_GETMODIFY 取得編輯控制項修改旗標的狀態。 旗標會指出是否已修改編輯控件的內容。 您可以將此訊息傳送至編輯控制項或豐富的編輯控制件。
EM_GETPASSWORDCHAR 取得編輯控制件在使用者輸入文字時顯示的密碼字元。 您可以將此訊息傳送至編輯控制項或豐富的編輯控制件。
EM_GETRECT 取得編輯控制件的格式設定矩形。 格式化矩形是控件繪製文字的限制矩形。 限制矩形與編輯控制元件視窗的大小無關。 您可以將此訊息傳送至編輯控制項或豐富的編輯控制件。
EM_GETSEL 取得編輯控制件中目前選取範圍的開始和結束字元位置(以 TCHAR秒為單位)。 您可以將此訊息傳送至編輯控制項或豐富的編輯控制件。
EM_GETTHUMB 取得多行編輯控件垂直滾動條中滾動盒 (thumb) 的位置。 您可以將此訊息傳送至編輯控制項或豐富的編輯控制件。
EM_GETWORDBREAKPROC 取得目前 Wordwrap 函式的位址。 您可以將此訊息傳送至編輯控制項或豐富的編輯控制件。
EM_GETZOOM 取得目前的縮放比例,其一律介於 1/64 和 64 之間。 您可以將此訊息傳送至編輯控制項或豐富的編輯控制件。 您可以明確傳送此訊息,或使用 Edit_GetZoom 宏。
EM_HIDEBALLOONTIP 隱藏與編輯控件相關聯的任何氣球提示。
EM_LIMITTEXT 設定編輯控制件的文字限制。 文字限制是使用者可在 TCHAR 中輸入到編輯控制項的最大文字數量。 您可以將此訊息傳送至編輯控制項或豐富的編輯控制件。
針對編輯控件和 Microsoft Rich Edit 1.0,會使用位元組。 針對 Microsoft Rich Edit 2.0 和更新版本,會使用字元。
EM_LINEFROMCHAR 取得包含多行編輯控制項中指定字元索引的行索引。 字元索引是從編輯控件的開頭開始,以零起始的字元索引。 您可以將此訊息傳送至編輯控制項或豐富的編輯控制件。
EM_LINEINDEX 取得多行編輯控件中指定行之第一個字元的字元索引。 字元索引是從編輯控件的開頭開始,以零起始的字元索引。 您可以將此訊息傳送至編輯控制項或豐富的編輯控制件。
EM_LINELENGTH 擷取編輯控件中行的長度,以字元為單位。 您可以將此訊息傳送至編輯控制項或豐富的編輯控制件。
EM_LINESCROLL 捲動多行編輯控件中的文字。
EM_NOSETFOCUS 適用於內部用途;不建議在應用程式中使用。
防止單行編輯控制件接收鍵盤焦點。 您可以明確傳送此訊息,或使用 Edit_NoSetFocus 宏。
EM_POSFROMCHAR 擷取編輯控件中指定字元的工作區座標。 您可以將此訊息傳送至編輯控制項或豐富的編輯控制件。
EM_REPLACESEL 以指定的文字取代編輯控制項或豐富的編輯控制項中選取的文字。
EM_SCROLL 在多行編輯控件中垂直捲動文字。 此訊息相當於將 WM_VSCROLL 訊息傳送至編輯控制件。 您可以將此訊息傳送至編輯控制項或豐富的編輯控制件。
EM_SCROLLCARET 將插入號捲動到編輯控件的檢視中。 您可以將此訊息傳送至編輯控制項或豐富的編輯控制件。
EM_SETCARETINDEX 設定編輯控制項中插入號位置之以零起始的索引。
EM_SETCUEBANNER 設定編輯控制項所顯示的文字提示或提示,以提示使用者輸入資訊。
EM_SETENDOFLINE 設定指定編輯控制件的行尾字元。 您可以明確傳送此訊息,或使用 Edit_SetEndOfLine 宏。
EM_SETEXTENDEDSTYLE 設定編輯控制件的延伸樣式。 使用 Edit_SetExtendedStyle 宏明確傳送此訊息。
EM_SETHANDLE 設定多行編輯控制項將使用之內存的句柄。
EM_SETHILITE 未實作。
EM_SETIMESTATUS 設定狀態旗標,決定編輯控件如何與 IME 互動。
EM_SETLIMITTEXT 設定編輯控制件的文字限制。 文字限制是使用者可在 TCHAR 中輸入到編輯控制項的最大文字數量。 您可以將此訊息傳送至編輯控制項或豐富的編輯控制件。
針對編輯控件和 Microsoft Rich Edit 1.0,會使用位元組。 針對 Microsoft Rich Edit 2.0 和更新版本,會使用字元。
EM_SETLIMITTEXT訊息與EM_LIMITTEXT訊息相同。
EM_SETMARGINS 設定編輯控制件的左右邊界寬度。 訊息會重新繪製控件,以反映新的邊界。 您可以將此訊息傳送至編輯控制項或豐富的編輯控制件。
EM_SETMODIFY 設定或清除編輯控件的修改旗標。 修改旗標會指出編輯控件內的文字是否已修改。 您可以將此訊息傳送至編輯控制項或豐富的編輯控制件。
EM_SETPASSWORDCHAR 設定或移除編輯控制件的密碼字元。 設定密碼字元時,會顯示該字元來取代使用者輸入的字元。 您可以將此訊息傳送至編輯控制項或豐富的編輯控制件。
EM_SETREADONLY 設定或移除編輯控制件的唯讀樣式(ES_READONLY)。 您可以將此訊息傳送至編輯控制項或豐富的編輯控制件。
EM_SETRECT 設定多行編輯控制件的格式矩形。 格式化矩形是控件繪製文字的限制矩形。 限制矩形與編輯控制元件視窗的大小無關。
此訊息只會由多行編輯控件處理。 您可以將此訊息傳送至編輯控制項或豐富的編輯控制件。
EM_SETRECTNP 設定多行編輯控制件的格式矩形EM_SETRECTNP訊息與EM_SETRECT訊息相同,不同之處在於EM_SETRECTNP不會重新繪製編輯控件視窗。
格式化矩形是控件繪製文字的限制矩形。 限制矩形與編輯控制元件視窗的大小無關。
此訊息只會由多行編輯控件處理。 您可以將此訊息傳送至編輯控制項或豐富的編輯控制件。
EM_SETSEL 選取編輯控制件中的字元範圍。 您可以將此訊息傳送至編輯控制項或豐富的編輯控制件。
EM_SETTABSTOPS EM_SETTABSTOPS訊息會在多行編輯控件中設定製表位。 當文字複製到 控件時,文字中的任何製表符都會產生空格到下一個製表位。
此訊息只會由多行編輯控件處理。 您可以將此訊息傳送至編輯控制項或豐富的編輯控制件。
EM_SETWORDBREAKPROC 將編輯控制元件的預設 Wordwrap 函式取代為應用程式定義的 Wordwrap 函式。 您可以將此訊息傳送至編輯控制項或豐富的編輯控制件。
EM_SETZOOM 設定介於 1/64 和 64 之間的縮放比例。 您可以將此訊息傳送至編輯控制項或豐富的編輯控制件。 您可以明確傳送此訊息,或使用 Edit_SetZoom 宏。
EM_SHOWBALLOONTIP EM_SHOWBALLOONTIP訊息會顯示與編輯控件相關聯的氣球提示。
EM_TAKEFOCUS 適用於內部用途;不建議在應用程式中使用。
強制單行編輯控制件接收鍵盤焦點。 您可以明確傳送此訊息,或使用 Edit_TakeFocus 宏。
EM_UNDO 此訊息會復原控件的復原佇列中的最後一個編輯控件作業。 您可以將此訊息傳送至編輯控制項或豐富的編輯控制件。
WM_UNDO 應用程式會將 WM_UNDO 訊息傳送至編輯控制項,以復原最後一項作業。 當此訊息傳送至編輯控件時,會還原先前刪除的文字或刪除先前新增的文字。

Notifications

主題 目錄
EN_ALIGN_LTR_EC 當使用者將編輯控制項方向變更為由左至右時傳送。 編輯控制件的父視窗會透過 WM_COMMAND 訊息接收此通知程式代碼。
EN_ALIGN_RTL_EC 當使用者將編輯控件方向變更為由右至左時傳送。 編輯控制件的父視窗會透過 WM_COMMAND 訊息接收此通知程式代碼。
EN_CHANGE 當用戶採取可能已改變編輯控制件中文字的動作時傳送。 不同於EN_UPDATE通知程式代碼,此通知碼會在系統更新畫面之後傳送。 編輯控制件的父視窗會透過 WM_COMMAND 訊息接收此通知程式代碼。
EN_ERRSPACE 當編輯控制項無法配置足夠的記憶體以符合特定要求時傳送。 編輯控制件的父視窗會透過 WM_COMMAND 訊息接收此通知程式代碼。
EN_HSCROLL 當使用者按兩下編輯控制元件的水準滾動條時傳送。 編輯控制件的父視窗會透過 WM_COMMAND 訊息接收此通知程式代碼。 父視窗會在更新畫面之前收到通知。
EN_KILLFOCUS 當編輯控件失去鍵盤焦點時,會 傳送EN_KILLFOCUS 通知碼。 編輯控制件的父視窗會透過 WM_COMMAND 訊息接收此通知程式代碼。
EN_MAXTEXT 當目前的文字插入超過編輯控制件的指定字元數時傳送。 已截斷文字插入。
當編輯控件沒有 ES_AUTOHSCROLL 樣式,而且要插入的字元數會超過編輯控件的寬度時,也會傳送此訊息。
當編輯控件沒有 ES_AUTOVSCROLL 樣式,而且文字插入所產生的行總數超過編輯控件的高度時,也會傳送此訊息。
編輯控制件的父視窗會透過 WM_COMMAND 訊息接收此通知程式代碼。
EN_SETFOCUS 編輯控制件收到鍵盤焦點時傳送。 編輯控制件的父視窗會透過 WM_COMMAND 訊息接收此通知程式代碼。
EN_UPDATE 當編輯控制項即將重新繪製本身時傳送。 此通知程式代碼會在控件格式化文字之後傳送,但在顯示文字之前。 這可讓您視需要調整編輯控件視窗的大小。 編輯控制件的父視窗會透過 WM_COMMAND 訊息接收此通知程式代碼。
EN_VSCROLL 當使用者按兩下編輯控制元件的垂直滾動條,或當使用者將滑鼠滾輪捲動到編輯控制元件上方時傳送。 編輯控制件的父視窗會透過 WM_COMMAND 訊息接收此通知程式代碼。 父視窗會在更新畫面之前收到通知。
WM_CTLCOLOREDIT 非只讀或停用的編輯控件會在控件即將繪製時,將WM_CTLCOLOREDIT訊息傳送至其父視窗。 透過回應此訊息,父視窗可以使用指定的裝置內容句柄來設定編輯控件的文字和背景色彩。

結構

主題 目錄
EDITBALLOONTIP 包含與按鈕控件相關聯的氣球提示相關信息。

常數

主題 目錄
編輯控制樣式 若要使用 CreateWindow 或 CreateWindowEx 函式建立編輯控件,請指定 EDIT 類別、適當的視窗樣式常數,以及下列編輯控件樣式的組合。 建立控件之後,這些樣式就無法修改,但如所述。