Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Podklasowanie to technika, która umożliwia aplikacji przechwytywanie i przetwarzanie komunikatów wysyłanych lub publikowanych w określonym oknie, zanim procedura okna będzie mogła je przetworzyć. System operacyjny automatycznie tłumaczy komunikaty na stronę kodową Windows (ANSI) lub formę Unicode , w zależności od postaci funkcji, która zdefiniowała podklasę dla procedury okna.
Następujące wywołanie funkcji SetWindowLongA zastępuje bieżącą procedurę okna skojarzoną z oknem zidentyfikowanym przez parametr hWnd. Alternatywnie aplikacja może używać SetWindowLongPtrA. Nowa procedura okna NewWndProc, będzie otrzymywać komunikaty z tekstem w formacie strony kodowej systemu Windows.
OldWndProc = (WNDPROC) SetWindowLongA(hWnd,
GWL_WNDPROC, (LONG)NewWndProc);
Po zakończeniu przetwarzania komunikatu NewWndProc używa funkcji CallWindowProc w następujący sposób, aby przekazać komunikat do OldWndProc.
CallWindowProc(OldWndProc, hWnd, uMessage, wParam, lParam);
Jeśli OldWndProc został utworzony przy użyciu stylu klasy UNICODE, komunikaty są tłumaczone z formularza strony kodowej systemu Windows otrzymanego przez NewWndProc do Unicode.
Podobnie, wywołanie funkcji SetWindowLongW lub SetWindowLongPtrW powoduje zmianę bieżącej procedury okna na procedurę, która oczekuje komunikatów tekstowych Unicode. W razie potrzeby tłumaczenie komunikatów jest wykonywane podczas przetwarzania funkcji CallWindowProc.
Aby uzyskać więcej informacji na temat subklasowania, odwołaj się do Window Procedures.
Tematy pokrewne