กล่องคำสั่งผสม subclassed

Subclassingคือกระบวนการอนุญาตให้โปรแกรมประยุกต์ไปยังจุดตัดแกนและประมวลผลข้อความถูกส่ง หรือลงรายการบัญชีในหน้าต่าง โดยใช้ subclassing แอปพลิเคชันสามารถใช้แทนตัวเองประมวลผลสำหรับบางข้อความ ข้อความส่วนใหญ่ดำเนินการกระบวนการกำหนดคลาหน้าต่างขณะ.

เมื่อระบบปฏิบัติการสร้างหน้าต่าง มันจะบันทึกข้อมูลเกี่ยวกับมันในโครงสร้างแบบข้อมูลภายในที่มีอยู่ของกระบวนงานหน้าต่าง ไปยังระดับชั้นย่อยหน้าต่าง แอปพลิเคชันเรียกฟังก์ชันSetClassLongเพื่อแทนอยู่ของกระบวนงานที่ มีอยู่ในอินสแตนซ์ของขั้นตอนการกำหนดโปรแกรมประยุกต์ระดับชั้นย่อย หลังจากนั้น ข้อความทั้งหมดไปยังหน้าต่างจะถูกส่งลงในกระบวนงานของระดับชั้นย่อย นอกจากนี้กระบวนการนี้แล้วใช้ฟังก์ชันCallWindowProcเพื่อส่งต่อข้อความที่ unprocessed ในกระบวนงานต้นฉบับของหน้าต่าง สำหรับคำอธิบายของการประมวลผลข้อความดำเนินการตามกระบวนการของ COMBOBOX คลาสหน้าต่าง ดูการเริ่มต้นทำงานของกล่องคำสั่งผสม.

เมื่อกล่องคำสั่งผสมอยู่นอกกล่องโต้ตอบ โปรแกรมประยุกต์ไม่สามารถประมวลผลแท็บ ป้อน และรอดแป้นเว้นแต่จะใช้ขั้นตอนระดับชั้นย่อย เมื่อกล่องคำสั่งผสมแบบหล่นลง หรืออย่างง่ายได้รับโฟกัสป้อนข้อมูล นั้นทันทีตั้งโฟกัสไปเป็นตัวควบคุมการแก้ไขเด็ก ดังนั้น โปรแกรมประยุกต์ต้องซับคลาสตัวควบคุมแก้ไขเพื่อดักแป้นพิมพ์ป้อนสำหรับกล่องคำสั่งผสมแบบหล่นลง หรือวิ สำหรับตัวอย่างนี้ ดูSubclassing กล่องคำสั่งผสม.

ถ้ากระบวนการขั้นตอนระดับชั้นย่อยการ WM_PAINTความ ต้องใช้ BeginPaintฟังก์ชันเพื่อเตรียมสำหรับการเขียนภาพ ก่อนการโทร EndPaintฟังก์ชัน มันส่งหมายเลขอ้างอิงบริบทอุปกรณ์ (DC) เป็นพารามิเตอร์wParamสำหรับกระบวนงานทางหน้าต่าง ถ้าEndPaintเรียกว่าครั้งแรก กระบวนการหน้าต่างชั้นไม่วาดภาพไม่ได้เนื่องจากEndPaintตรวจสอบหน้าต่างทั้งหมด.

เทคนิคที่เกี่ยวข้องกับ subclassing คือsuperclassing ซุปเปอร์คลาสที่คล้ายคลึงกับคลาสอื่น ๆ ยกเว้นว่ากระบวนงานของหน้าต่างไม่สามารถเรียกDefWindowProcในการจัดการกับข้อความที่ unprocessed แทน ก็ส่งข้อความ unprocessed กับขั้นตอนหน้าต่างหลักหน้าต่างชั้น ทำตามคำแนะนำในขั้นตอนของหน้าต่างเพื่อหลีกเลี่ยงปัญหาที่อาจเกิดขึ้นได้กับ subclassing และ superclassing.

Index