ซับคลาสที่อินสแตนซ์ของหน้าต่าง เรียกใช้ฟังก์ชันSetWindowLongและระบุหมายเลขอ้างอิงไปยังหน้าต่างการซับคลาส GWL_WNDPROC ค่าสถานะและตัวชี้ไปยังขั้นตอนระดับชั้นย่อย SetWindowLongกลับตัวชี้ไปยังกระบวนงานหน้าต่างเดิม ใช้ตัวชี้การส่งข้อความไปยังกระบวนงานต้นฉบับ ขั้นตอนในหน้าต่างระดับชั้นย่อยต้องใช้ฟังก์ชันCallWindowProcในการเรียกกระบวนงานหน้าต่างเดิม.
ตัวอย่างต่อไปนี้แสดงวิธีการซับคลาส ควบคุมอินสแตนซ์ของการแก้ไขในกล่องโต้ตอบ ขั้นตอนในหน้าต่างระดับชั้นย่อยทำให้ตัวควบคุมการแก้ไขได้รับทั้งหมดแป้นป้อน รวมทั้งปุ่ม enter และแท็บ เมื่อใดก็ ตามตัวควบคุมได้รับโฟกัสสำหรับการป้อนค่า.
WNDPROC wpOrigEditProc
(EditBoxProc LRESULT APIENTRY
HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) {HWND hwndEdit
switch(uMsg) {กรณี WM_INITDIALOG: / / เรียกใช้ตัวจัดการตัวควบคุมการแก้ไข
hwndEdit = GetDlgItem (hwndDlg, ID_EDIT);
/ / ระดับชั้นย่อยควบคุมการแก้ไข
wpOrigEditProc = SetWindowLong (WNDPROC) (hwndEdit, GWL_WNDPROC, EditSubclassProc (ยาว));
/ / / / กระบวนการเตรียมใช้งานการดำเนินการต่อไป
/ / กลับ TRUE
กรณี WM_DESTROY: / / ระดับชั้นย่อยการออกตัวควบคุมการแก้ไข
SetWindowLong (hwndEdit, GWL_WNDPROC, (ยาว) wpOrigEditProc);
/ / / / กระบวนการล้างข้อมูลการดำเนินการต่อไป
/ / แบ่ง
} ส่งกลับ FALSE
UNREFERENCED_PARAMETER(lParam)
} / / ระดับชั้นย่อยกระบวนงาน LRESULT APIENTRY EditSubclassProc (
HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {ถ้า (uMsg == WM_GETDLGCODE) กลับ DLGC_WANTALLKEYS
กลับ CallWindowProc (wpOrigEditProc, hwnd, uMsg, wParam, lParam);
}