การประมวลผลข้อความเริ่มต้นของตัวควบคุมแก้ไข

ดำเนินการขั้นตอนในหน้าต่างการแก้ไขล่วงหน้าควบคุมหน้าต่างชั้นออกเริ่มต้นการประมวลผลสำหรับข้อความทั้งหมดที่ไม่มีดำเนินกระบวนการควบคุมการแก้ไข กระบวนงานกำหนดไว้ล่วงหน้าหน้าต่างเมื่อส่งกระบวนการควบคุมแก้ไขกลับค่า FALSE สำหรับข้อความ ข้อความการตรวจสอบ และดำเนินตามคำการกระทำเริ่มต้นต่อไปนี้.

ข้อความ การกระทำเริ่มต้น
EM_CANUNDO ส่งกลับ TRUE ถ้าแก้ไขควบคุมการดำเนินการไม่สามารถยกเลิก.
EM_CHARFROMPOS ส่งกลับอักขระดัชนีและเส้นดัชนีของตัวอักขระที่ระบุจุดที่ใกล้ที่สุด.
EM_EMPTYUNDOBUFFER ลบข้อมูลในบัฟเฟอร์ที่เลิกทำ และตั้งธงเลิกทำการดึงข้อมูลตามความต้องการของEM_CANUNDOเป็น FALSE ระบบล้างสำหรับเลิกทำค่าสถานะโดยอัตโนมัติเมื่อใดก็ ตามตัวควบคุมการแก้ไขได้รับข้อความWM_SETTEXTหรือEM_SETHANDLE.
EM_FMTLINES เพิ่ม หรือเอาออกเส้นนุ่มแบ่งอักขระ (สองอักขระและการ linefeed) กับการสิ้นสุดของบรรทัดที่จัดในตัวควบคุมการแก้ไขหลายบรรทัด ไม่มีการประมวลผล โดยการควบคุมแก้ไขบรรทัดเดียว.
EM_GETFIRSTVISIBLELINE ส่งกลับตัวควบคุมแก้ไขดัชนี zero-based ของอักขระแรกที่มองเห็นได้ในบรรทัดเดียว หรือดัชนี zero-based บรรทัดบนสุดที่เห็นได้ในหลายรายการในตัวควบคุมแก้ไข.
EM_GETHANDLE ส่งกลับตัวเลขอ้างอิงที่ระบุบัฟเฟอร์ที่ประกอบด้วยหลายรายการที่แก้ไขข้อความของตัวควบคุม ไม่มีการประมวลผล โดยการควบคุมแก้ไขบรรทัดเดียว.
EM_GETLIMITTEXT ส่งกลับอักขระขีดจำกัดข้อความปัจจุบัน.
EM_GETLINE คัดลอกอักขระในเส้นเดียวควบคุมการบัฟเฟอร์แก้ไข และส่งกลับจำนวนอักขระที่คัดลอก ในตัวควบคุมการแก้ไขหลายบรรทัด ดึงบรรทัดข้อความจากการควบคุมและส่งกลับจำนวนอักขระที่คัดลอก.
EM_GETLINECOUNT ส่งกลับหมายเลขของบรรทัดในตัวควบคุมการแก้ไข.
EM_GETMARGINS ส่งกลับค่าความกว้างของระยะขอบซ้าย และขวา.
EM_GETMODIFY ส่งกลับค่าสถานะเพื่อแสดงว่า มีการปรับเปลี่ยนเนื้อหาของตัวควบคุมการแก้ไข.
EM_GETPASSWORDCHAR ส่งกลับอักขระที่แก้ไขตัวควบคุมที่ใช้ร่วมกับลักษณะ ES_PASSWORD.
EM_GETRECT ส่งกลับค่าพิกัดของกรอบการจัดรูปแบบในตัวควบคุมการแก้ไข.
EM_GETSEL ส่งกลับค่าเริ่มต้นและสิ้นสุดตำแหน่งอักขระของสิ่งที่เลือกปัจจุบันในตัวควบคุมการแก้ไข.
EM_GETTHUMB ส่งกลับค่าตำแหน่งของกล่องเลื่อน.
EM_GETWORDBREAKPROC ส่งกลับค่าฟังก์ชันการตัดคำในปัจจุบันอยู่ในตัวควบคุมการแก้ไข.
EM_LINEFROMCHAR ส่งกลับหมายเลขของบรรทัด zero-based ในตัวควบคุมการแก้ไขหลายบรรทัดที่ประกอบด้วยดัชนีระบุอักขระแบบนี้ข้อความอยู่ตรงข้ามกันของข้อความEM_LINEINDEX ไม่มีการประมวลผล โดยการควบคุมแก้ไขบรรทัดเดียว.
EM_LINEINDEX ส่งกลับอักขระที่บรรทัดในตัวควบคุมการแก้ไขหลายบรรทัด ข้อความนี้เป็นการย้อนกลับของข้อความEM_LINEFROMCHAR ไม่มีการประมวลผล โดยการควบคุมแก้ไขบรรทัดเดียว.
EM_LINELENGTH ส่งกลับค่าความยาว ในตัวอักษร ตัวควบคุมการแก้ไขแบบบรรทัดเดียว ในตัวควบคุมการแก้ไขหลายบรรทัด ความยาว ในตัวอักษร บรรทัดที่ระบุที่ส่งกลับค่า.
EM_LINESCROLL เลื่อนข้อความ ในตัวควบคุมการแก้ไขแบบบรรทัดเดียวในแนวตั้ง หรือแนวนอน ในตัวควบคุมการแก้ไขหลายบรรทัด (เมื่อตัวควบคุมมีลักษณะ ES_LEFT) พารามิเตอร์lParamระบุจำนวนบรรทัดที่เลื่อนแนวตั้ง เริ่มต้นจากบรรทัดปัจจุบัน พารามิเตอร์wParamระบุจำนวนของอักขระในการเลื่อนตามแนวนอน เริ่มต้นจากอักขระปัจจุบัน.
EM_POSFROMCHAR ส่งกลับค่าไคลเอ็นต์พิกัดของอักขระที่ระบุ.
EM_REPLACESEL แทนที่ส่วนที่เลือกปัจจุบัน ด้วยข้อความในบัฟเฟอร์ที่มาจากโปรแกรมประยุกต์ ส่งข้อความEN_UPDATEและEN_CHANGEของหน้าต่างหลัก และปรับปรุงบัฟเฟอร์ที่เลิกทำ.
EM_SCROLL เลื่อนข้อความในตัวควบคุมการแก้ไขหลายบรรทัดแนวตั้ง ข้อความนี้จะเท่ากับการส่งข้อความWM_VSCROLLให้กับตัวควบคุมการแก้ไข ไม่มีการประมวลผล โดยการควบคุมแก้ไขบรรทัดเดียว.
EM_SCROLLCARET เลื่อนเครื่องหมายรูปหมวกลงในมุมมองในการควบคุมการแก้ไข.
EM_SETFONT ไม่สนับสนุน.
EM_SETHANDLE ตั้งค่าตัวจัดการหน่วยความจำที่ใช้เป็นบัฟเฟอร์ข้อ บัฟเฟอร์การเลิกทำการลบข้อมูลใน เลื่อนตำแหน่งตั้งค่าใหม่ให้เป็นศูนย์ และ redraws หน้าต่าง.
EM_SETLIMITTEXT การตั้งค่าจำนวนสูงสุดของอักขระที่ผู้ใช้อาจป้อนในตัวควบคุมการแก้ไข.

Windows NT: สำหรับตัวควบคุมการแก้ไขบรรทัดเดียว ค่านี้เป็น 0x7FFFFFFE หรือค่าของพารามิเตอร์wParamใดก็ได้ที่มีขนาดเล็กลง สำหรับตัวควบคุมการแก้ไขหลายบรรทัด ค่านี้เป็น 0xFFFFFFFF หรือค่าของพารามิเตอร์wParamใดก็ได้ที่มีขนาดเล็กลง.

Windows 95 และ Windows 98: สำหรับตัวควบคุมการแก้ไขบรรทัดเดียว ค่านี้เป็น 0x7FFE หรือค่าของพารามิเตอร์wParamใดก็ได้ที่มีขนาดเล็กลง สำหรับตัวควบคุมการแก้ไขหลายบรรทัด ค่านี้คือ 0xFFFF หรือค่าของพารามิเตอร์wParamใดก็ได้ที่มีขนาดเล็กลง.

EM_SETMARGINS การตั้งค่าความกว้างของระยะขอบซ้าย และขวา และตัวควบคุมการแก้ไขเพื่อแสดงระยะขอบใหม่ redraws.
EM_SETMODIFY ตั้งค่า หรือล้างค่าสถานะเปลี่ยนแปลงเพื่อระบุว่า ตัวควบคุมการแก้ไขที่ถูกปรับเปลี่ยน.
EM_SETPASSWORDCHAR กำหนดอักขระตัวที่แก้ไขตัวควบคุมที่ใช้ร่วมกับลักษณะ ES_PASSWORD.
EM_SETREADONLY ตั้งค่า หรือเอาลักษณะแบบอ่านอย่างเดียว (ES_READONLY) ในตัวควบคุมการแก้ไข.
EM_SETRECT การตั้งค่ากรอบการจัดรูปแบบสำหรับตัวควบคุมแก้ไขหลายบรรทัด และ redraws หน้าต่าง ไม่มีการประมวลผล โดยการควบคุมแก้ไขบรรทัดเดียว.
EM_SETRECTNP การตั้งค่ากรอบการจัดรูปแบบสำหรับตัวควบคุมแก้ไขหลายบรรทัด แต่ไม่ออกตั๋วใหม่หน้าต่าง ไม่มีการประมวลผล โดยการควบคุมแก้ไขบรรทัดเดียว.
EM_SETSEL เลือกช่วงของอักขระในตัวควบคุมการแก้ไข โดยการตั้งค่าเริ่มต้น และสิ้นสุดตำแหน่งให้มีเลือก.
EM_SETTABSTOPS ตั้งค่าแท็บหยุดตำแหน่งในหลายรายการที่ตัวควบคุมที่มีแก้ไข ไม่มีการประมวลผล โดยการควบคุมแก้ไขบรรทัดเดียว.
EM_SETWORDBREAKPROC แทนที่ฟังก์ชันการตัดคำเริ่มต้น ด้วยฟังก์ชันการตัดคำที่กำหนดโดยโปรแกรมประยุกต์.
EM_UNDO เอาข้อความที่เพิ่งมีแทรก หรือแทรกอักขระใด ๆ ที่ถูกลบ และตั้งค่าการเลือกข้อความแทรกไว้ ถ้าจำเป็น ส่งข้อความแจ้งเตือนEN_UPDATEและEN_CHANGEในหน้าต่างหลัก.
WM_CHAR เขียนอักขระตัวควบคุมการแก้ไขแบบบรรทัดเดียว และส่งข้อความแจ้งเตือน EN_UPDATE และ EN_CHANGE ในหน้าต่างหลัก เขียนตัวอักขระหลายรายการที่ตัวควบคุมที่มีแก้ไข จัดการคีย์การเร่งความเร็วสำหรับฟังก์ชันมาตรฐาน เช่น ctrl + c สำหรับการคัดลอก และ ctrl + v สำหรับการวาง ในหลายรายการแก้ไขตัวควบคุม ยังแท็บกระบวนการ และ ctrl + กดแป้น tab เพื่อย้ายไปมาระหว่างตัวควบคุมในกล่องโต้ตอบ และแทรกแท็บในหลายรายการตัวควบคุมแก้ไข ใช้ MessageBeepฟังก์ชันสำหรับอักขระที่ไม่ถูกต้อง.
WM_CLEAR ล้างสิ่งที่เลือกปัจจุบัน ถ้ามี ในตัวควบคุมการแก้ไข ถ้าไม่มีการเลือกปัจจุบัน ลบอักขระทางด้านขวาของเครื่องหมายรูปหมวก ถ้าผู้ใช้การกดแป้น shift นี้ตัดสิ่งที่เลือกไปยังคลิปบอร์ด หรือลบอักขระทางด้านซ้ายของเครื่องหมายรูปหมวกเมื่อไม่มีการเลือก ถ้าผู้ใช้การกดแป้น ctrl นี้ลบส่วนที่เลือก หรือลบไปท้ายบรรทัดเมื่อไม่มีการเลือก.
WM_COPY คัดลอกข้อความไปยังคลิปบอร์ดเว้นแต่ลักษณะคือ ES_PASSWORD ซึ่งกรณีข้อความส่งกลับค่าเป็นศูนย์.
WM_CREATE สร้างตัวควบคุมการแก้ไข และหน้าต่างหลักกับ TRUE สำหรับความสำเร็จหรือ– 1 สำหรับความล้มเหลวของการแจ้งให้ทราบ.
WM_CUT ตัดส่วนที่เลือกไปยังคลิปบอร์ด หรือลบอักขระทางด้านซ้ายของเคอร์เซอร์ถ้าไม่มีการเลือก.
WM_ENABLE ทำให้สี่เหลี่ยมที่จะถูกวาดขึ้นมาใหม่เป็นสีเทาสำหรับตัวควบคุมการแก้ไขบรรทัดเดียวกัน ส่งกลับค่าสถานะเปิดใช้งานสำหรับตัวควบคุมการแก้ไขแบบ บรรทัดเดียว และแบบหลายบรรทัด.
WM_ERASEBKGND กรอกหน้าต่างควบคุมแก้ไขหลายบรรทัด ด้วยสีปัจจุบันของตัวควบคุมการแก้ไข.
WM_GETDLGCODE ส่งกลับค่าดังต่อไปนี้: DLGC_WANTCHARS, DLGC_HASSETSEL และ DLGC_WANTARROWS ในตัวควบคุมการแก้ไขหลายบรรทัด จะส่งยังกลับ DLGC_WANTALLKEYS ถ้าผู้ใช้กด alt + backspace จะส่งยังกลับ DLGC_WANTMESSAGE.
WM_GETFONT ส่งกลับหมายเลขอ้างอิงของแบบอักษรที่ถูกใช้ โดยตัวควบคุม หรือค่า NULL ถ้าตัวควบคุมใช้แบบอักษรของระบบ.
WM_GETTEXT การคัดลอกจำนวนอักขระที่ระบุการบัฟเฟอร์ และส่งกลับจำนวนอักขระที่คัดลอก.
WM_GETTEXTLENGTH ส่งกลับค่าความยาว ในตัวอักษร ข้อความในตัวควบคุมการแก้ไข ความยาวไม่รวมค่า null - terminating อักขระ.
WM_HSCROLL เลื่อนข้อความในตัวควบคุมการแก้ไขหลายบรรทัดตามแนวนอน และจับความเคลื่อนไหวของกล่องเลื่อน.
WM_KEYDOWN ดำเนินการประมวลผลมาตรฐานรหัสคีย์เสมือน.
WM_KILLFOCUS เอาโฟกัสของแป้นพิมพ์ของหน้าต่างควบคุมการแก้ไข ขัดเครื่องหมายรูปหมวก ซ่อนสิ่งที่เลือกปัจจุบัน และจะแจ้งให้หน้าต่างหลักที่ควบคุมการแก้ไขที่สูญเสียโฟกัส.
WM_LBUTTONDBLCLK ล้างสิ่งที่เลือกปัจจุบัน และเลือกคำว่าภายใต้เคอร์เซอร์ ถ้าคีย์ shift ค้าง ขยายสิ่งที่เลือกไปที่คำว่าภายใต้เคอร์เซอร์.
WM_LBUTTONDOWN เปลี่ยนจุดปัจจุบัน ถ้าคีย์ shift ค้าง ขยายสิ่งที่เลือกไปยังตำแหน่งของเคอร์เซอร์ ในตัวควบคุมการแก้ไขหลายบรรทัด สามารถตั้งค่าตัวจับเวลาการเลื่อนโดยอัตโนมัติเมื่อผู้ใช้กดปุ่มเมาส์นอกหน้าต่างควบคุมแก้ไขหลายบรรทัด.
WM_LBUTTONUP ออกจับเมาส์ และการตั้งค่าจุดแทรกข้อความในตัวควบคุมการแก้ไขแบบบรรทัดเดียว ในตัวควบคุมการแก้ไขหลายบรรทัด มันยังฆ่าตัวจับเวลาที่กำหนดในข้อความWM_LBUTTONDOWN.
WM_MOUSEMOVE เปลี่ยนแปลงสิ่งที่เลือกปัจจุบันในตัวควบคุมการแก้ไขบรรทัดเดียว ถ้าปุ่มเมาส์ลง ในการควบคุมการแก้ไขหลายบรรทัด สามารถตั้งค่าตัวจับเวลาการเลื่อนโดยอัตโนมัติถ้ามีการให้ผู้ใช้กดปุ่มเมาส์นอกหน้าต่างควบคุมแก้ไขหลายบรรทัด.
WM_NCCREATE ชี้ไปยังโครงสร้างCREATESTRUCTสำหรับหน้าต่าง ข้อความนี้ถูกส่งไปกับข้อความของWM_CREATEเมื่อแรกสร้างหน้าต่าง.
WM_NCDESTROY ทำให้หน่วยความจำทั้งหมดที่เกี่ยวข้องกับการควบคุมหน้าต่างแก้ไข รวมถึงบัฟเฟอร์ข้อความ เลิกทำบัฟเฟอร์ บัฟเฟอร์การหยุดแท็บ และเน้นแปรง.
WM_PAINT ลบพื้นหลัง กรอกหน้าต่าง ด้วยสีของหน้าต่างควบคุมการแก้ไขปัจจุบัน วาดเส้นขอบ (ถ้ามี), การตั้งค่าแบบอักษร และวาดข้อความใด ๆ และแสดงเครื่องหมายรูปหมวกแทรกข้อความ.
WM_PASTE วางข้อความจากคลิปบอร์ดไปหน้าต่างควบคุมการแก้ไขที่ตำแหน่งตัวชี้เมื่อ.
WM_SETFOCUS การตั้งค่าแป้นพิมพ์โฟกัสของหน้าต่างควบคุมการแก้ไข (แสดงสิ่งที่เลือกปัจจุบัน ถ้ามันซ่อนอยู่ และสร้างเครื่องหมายรูปหมวก).
WM_SETFONT การตั้งค่าแบบอักษร และ redraws สามารถเลือกตัวควบคุมการแก้ไข.
WM_SETTEXT สำเนาข้อความบรรทัดเดียวแก้ไขควบคุม จะแจ้งให้แม่หน้าต่างเมื่อมีหน่วยความจำไม่เพียงพอ บัฟเฟอร์การเลิกทำการลบข้อมูลใน และส่งข้อความแจ้งเตือนEN_UPDATEและEN_CHANGEในหน้าต่างหลัก ในหลายรายการแก้ไขตัวควบคุม rewraps ยังบรรทัด (หากจำเป็น) และชุดเลื่อนตำแหน่ง.
WM_SIZE การเปลี่ยนแปลงขนาดของหน้าต่างควบคุมแก้ไข และเพื่อให้แน่ใจว่า ขนาดต่ำสุดที่ตอบสนองต่อความสูงและความกว้างของอักขระ.
WM_SYSCHAR ส่งกลับค่า TRUE ถ้า ผู้ใช้กด alt + backspace มิฉะนั้น มันจะไม่มีการกระทำ.
WM_SYSKEYDOWN เลิกทำการกระทำสุดท้ายถ้าผู้ใช้กด alt + backspace มิฉะนั้น มันจะไม่มีการกระทำ.
WM_TIMER เลื่อนข้อความในหน้าต่างควบคุมแก้ไขถ้าผู้ใช้กดปุ่มเมาส์นอกหน้าต่างควบคุมแก้ไขหลายบรรทัด.
WM_UNDO เอาข้อความที่เพิ่งมีแทรก หรือแทรกอักขระใด ๆ ที่ถูกลบ และตั้งค่าการเลือกข้อความแทรกไว้ ถ้าจำเป็น ส่งข้อความแจ้งเตือนEN_UPDATEและEN_CHANGEในหน้าต่างหลัก.
WM_VSCROLL Scrolls แบบหลายรายการแก้ไขตัวควบคุมในแนวตั้ง และจับเลื่อนเคลื่อนย้ายกล่อง ไม่มีการประมวลผล โดยการควบคุมแก้ไขบรรทัดเดียว.

ที่กำหนดไว้ล่วงหน้าแก้ไขควบคุมหน้าต่างกระบวนงานผ่านข้อความอื่น ๆ ทั้งหมดไปDefWindowProcฟังก์ชันสำหรับการเริ่มต้นการประมวลผล.

Index