การปันส่วนการบัฟเฟอร์ข้อความ

เมื่อระบบสร้างตัวควบคุมการแก้ไข นั้นโดยอัตโนมัติสร้างบัฟเฟอร์ข้อความ การตั้งค่าขนาดเริ่มต้น และเพิ่มขนาดตามความจำเป็น ขนาดได้ถึงประมาณ 32 กิโลสำหรับตัวควบคุมการแก้ไขบรรทัดเดียวจำกัดกำหนดไว้ล่วงหน้า เนื่องจากขีดจำกัดนี้สามารถเปลี่ยนแปลง โดยเรียกว่านุ่มจำกัด แอปพลิเคชันสามารถกำหนดวงเงินฮาร์ขนาดบัฟเฟอร์ โดยการส่งข้อความEM_SETLIMITTEXTให้กับตัวควบคุมการแก้ไข ถ้าบัฟเฟอร์เกินขีดจำกัดอย่างใดอย่างหนึ่ง ระบบส่งโปรแกรมประยุกต์ข้อEN_ERRSPACE แอปพลิเคชันสามารถเรียกจำกัดของข้อความในปัจจุบัน โดยการส่งข้อความEM_GETLIMITTEXT.

ระบบโดยทั่วไปสร้างบัฟเฟอร์ตัวควบคุมการแก้ไขในกล่องโต้ตอบ ใช้หน่วยความจำภายนอกส่วนข้อมูลของโปรแกรมประยุกต์ แอปพลิเคชันสามารถระงับการทำงานการปันส่วนค่าเริ่มต้นนี้ และสร้างบัฟเฟอร์จากกองของท้องถิ่น โดยใช้ลักษณะ DS_LOCALEDIT เมื่อสร้างตัวควบคุมการแก้ไข โปรแกรมประยุกต์ที่ใช้ลักษณะ DS_LOCALEDIT รับผิดชอบทั้งหมดบัฟเฟอร์การปันส่วน เพื่อทำการจัดสรรครั้งแรก สามารถเรียกใช้โปรแกรมประยุกต์ LocalAllocฟังก์ชันและผ่านบัฟเฟอร์ที่ส่งคืนจัดการตัวควบคุมการแก้ไข ด้วยการส่งข้อความEM_SETHANDLE การให้ปันส่วนต่อมา (ในการตอบสนองต่อ EN_ERRSPACE ข้อ ตัวอย่าง), แอปพลิเคชันควรบันทึกเนื้อหาของบัฟเฟอร์ปัจจุบัน (ถ้าจำเป็น) และขอรับบัฟเฟอร์ใหม่เป็นดังนี้

  1. เรียกใช้ตัวจัดการหน่วยความจำในขณะนี้การปันส่วนสำหรับข้อความในตัวควบคุมการแก้ไขหลายบรรทัด โดยการส่งตัวควบคุมข้อความEM_GETHANDLE.
  2. ฟรีบัฟเฟอร์ โดยการเรียกการ LocalFreeฟังก์ชัน.
  3. ขอรับการบัฟเฟอร์ใหม่ (และหมายเลขอ้างอิงของบัฟเฟอร์) โดยการเรียกLocalAlloc.
  4. มอบหมายเลขอ้างอิงของบัฟเฟอร์ไปยังระบบส่งตัวควบคุมข้อความEM_SETHANDLE.

ข้อความ EM_SETHANDLE และEM_GETHANDLEใช้กับตัวควบคุมการแก้ไขหลายบรรทัดเท่านั้น.

โปรแกรมประยุกต์ที่ใช้ลักษณะการทำงานเริ่มต้นการปันส่วน (นั่นคือ ไม่ใช้ลักษณะ DS_LOCALEDIT) ต้องไม่ส่งข้อความ EM_SETHANDLE และ EM_GETHANDLE ให้กับตัวควบคุมการแก้ไข.

ส่งข้อความEM_SETHANDLEได้หลายเคียง: มันล้างเลิกทำค่าสถานะ (ทำความEM_CANUNDOกลับเป็นศูนย์), มันล้างค่าสถานะปรับเปลี่ยน (การทำให้ข้อความEM_GETMODIFYกลับเป็นศูนย์), และมัน redraws หน้าต่างควบคุมการแก้ไข.

Index