Subclassing สากล

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

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

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

Index