共用方式為


子類別化和自動訊息轉譯

子類別化是一種技術,可讓應用程式在視窗程式有機會處理訊息之前,攔截並處理傳送或張貼至特定視窗的訊息。 作業系統會根據已子類別化視窗程式的函式形式,自動將訊息轉譯成 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 和字元集