อินสแตนซ์ Subclassing

การประยุกต์ชั้นย่อยใด ๆ ตัวอย่างของหน้าต่างโดยใช้ฟังก์ชันSetWindowLong โปรแกรมประยุกต์ที่ส่งผ่านค่าสถานะ GWL_WNDPROC หมายเลขอ้างอิงหน้าต่างเพื่อซับคลาส และอยู่ของกระบวนการทำงานในระดับชั้นย่อยการSetWindowLong ขั้นตอนระดับชั้นย่อยสามารถอยู่ในปฏิบัติการของโปรแกรมประยุกต์หรือ dynamic-link library (DLL).

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

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

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

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

Index