Podtrieda inštanciu okno volať funkciu SetWindowLong a určite rúčka okno podtriedy GWL_WNDPROC vlajku a ukazovateľ postupu podtriedy. SetWindowLong vracia ukazovateľ na pôvodné okno postupu; použite tento ukazovateľ preniesť správy na pôvodný postup. Podtrieda okno postup musí využiť funkciu CallWindowProc volanie Pôvodná okno postup.
Nasledujúci príklad zobrazuje, ako podtrieda inštanciu upraviť ovládača v dialógovom okne. Podtrieda okno postup umožňuje upraviť kontrolu prijímať všetky klávesnice vstup, vrátane klávesy enter alebo tab kedykoľvek kontrole vstupnej zameranie.
WNDPROC wpOrigEditProc;
LRESULT APIENTRY EditBoxProc (
HWND hwndDlg, UINT uMsg WPARAM wParam LPARAM lParam) {HWND hwndEdit;
switch(uMsg) {prípad WM_INITDIALOG: / / získať popisovač upraviť kontroly.
hwndEdit = GetDlgItem (hwndDlg, ID_EDIT);
/ / Podtriedy upraviť kontroly.
wpOrigEditProc = (WNDPROC) SetWindowLong (hwndEdit, GWL_WNDPROC, (dlhou) EditSubclassProc);
/ / / / Pokračovať v postupe inicializácie.
/ / Vráti hodnotu pravda;
prípad WM_DESTROY: / / odstrániť podtriedy upraviť kontroly.
SetWindowLong (hwndEdit, GWL_WNDPROC, (dlhou) wpOrigEditProc);
/ / / / Pokračovať v postupe čistenie.
/ / prerušiť;
} Vráti FALSE;
UNREFERENCED_PARAMETER(lParam);
} / / Podtriedy postup LRESULT APIENTRY EditSubclassProc (
HWND hwnd, UINT uMsg WPARAM wParam LPARAM lParam) {Ak (uMsg == WM_GETDLGCODE) návrat DLGC_WANTALLKEYS;
návrat CallWindowProc (wpOrigEditProc, hwnd, uMsg, wParam, lParam);
}