共用方式為


子類別化和自動訊息翻譯

子類別化是一種技術,可讓應用程式在視窗程式有機會處理訊息之前,攔截和處理傳送或張貼至特定視窗的訊息。 作業系統會自動將訊息轉譯成 Windows (ANSI) 字碼頁Unicode 表單,視具有子類別化視窗程式的函式形式而定。

下列 SetWindowLongA 函式呼叫會子類別化與 hWnd 參數所識別之視窗相關聯的目前視窗過程。 或者,應用程式可以使用 SetWindowLongPtrA。 新的視窗程式 NewWndProc會以 Windows 字碼頁格式接收含有文字的訊息。

OldWndProc = (WNDPROC) SetWindowLongA(hWnd,
             GWL_WNDPROC, (LONG)NewWndProc); 

當 NewWndProc完成處理訊息時,它會使用CallWindowProc函式,如下所示將訊息傳遞至OldWndProc

CallWindowProc(OldWndProc, hWnd, uMessage, wParam, lParam);

如果 OldWndProc 是以 UNICODE 類別樣式建立的,訊息會從 NewWndProc 收到的 Windows 字碼頁表單轉譯成 Unicode。

同樣地, 對 SetWindowLongWSetWindowLongPtrW 函式的呼叫會使用預期 Unicode 文字訊息的視窗程式子類別化目前的視窗程式。 如有需要,訊息轉譯會在 CallWindowProc 函式的處理期間執行。

如需子類別化的詳細資訊,請參閱 視窗程式

使用 Unicode 和字元集