CallWindowProc

ฟังก์ชันCallWindowProcส่งผ่านข้อมูลของข้อความลงในกระบวนงานที่ระบุหน้าต่าง.

(LRESULT CallWindowProc WNDPROC  lpPrevWndFunc, / / ชี้ขั้นตอนก่อนหน้านี้HWNDhWnd, / / จัดการหน้าต่างUINTข่าวสารเกี่ยวกับ, // messageWPARAMwParam, / / ข้อความแรก พารามิเตอร์LPARAMlParam / / ที่สองพารามิเตอร์ข้อความ);
 

พารามิเตอร์

lpPrevWndFunc
ชี้ไปยังกระบวนการหน้าต่างก่อนหน้า.

ถ้าค่านี้ได้มา ด้วยการเรียกฟังก์ชันGetWindowLong nIndexพารามิเตอร์การตั้งค่าเป็น GWL_WNDPROC หรือ DWL_DLGPROC เป็นจริงทั้งอยู่ของหน้าต่าง หรือกระบวนงานที่กล่องโต้ตอบ หรือหมายเลขอ้างอิงการแสดงที่อยู่.

hWnd
จัดการกับกระบวนการทำงานในหน้าต่างการได้รับข้อความ.
ข่าวสารเกี่ยวกับ
ระบุข้อความ.
wParam
ระบุข้อมูลเฉพาะข้อความเพิ่มเติม เนื้อหาของพารามิเตอร์นี้ขึ้นกับค่าของพารามิเตอร์Msg.
lParam
ระบุข้อมูลเฉพาะข้อความเพิ่มเติม เนื้อหาของพารามิเตอร์นี้ขึ้นกับค่าของพารามิเตอร์Msg.

ส่งกลับค่า

ค่าส่งกลับผลลัพธ์ของการประมวลผลข้อความที่ระบุ และขึ้นอยู่กับข้อความที่ส่ง.

หมายเหตุ

ใช้ฟังก์ชันCallWindowProcสำหรับหน้าต่าง subclassing โดยปกติ windows ทั้งหมดกับชั้นเรียนเดียวกันร่วมกันหนึ่งหน้าต่างกระบวนงาน ระดับชั้นย่อยที่มีหน้าต่างหรือชุดของ windows ด้วยชั้นเรียนเดียวกันดัก และถูกประมวลผล โดยขั้นตอนของหน้าต่างอื่น (หรือกระบวนงาน) ก่อนที่จะถูกส่งผ่านไปยังกระบวนงานหน้าต่างของชั้นซึ่งมีข้อความ.

ฟังก์ชันSetWindowLongสร้างที่ระดับชั้นย่อย โดยการเปลี่ยนกระบวนการหน้าต่างที่เกี่ยวข้องกับหน้าต่างเฉพาะ การก่อให้เกิดระบบการเรียกกระบวนงานหน้าต่างใหม่แทนที่เป็นของก่อนหน้านี้ โปรแกรมประยุกต์ต้องผ่านข้อความที่ไม่ถูกประมวลผล โดยหน้าต่างวิธีการใหม่ลงในกระบวนงานหน้าต่างก่อนหน้า โดยการเรียกCallWindowProc นี้ทำให้โปรแกรมประยุกต์ที่สร้างแบบลูกโซ่ของกระบวนงานที่หน้าต่าง.

ถ้ามีกำหนดเคร่งครัด พารามิเตอร์lpPrevWndFuncมีชนิดข้อมูล WNDPROC ชนิดWNDPROCถูกประกาศเป็นดังนี้

LRESULT (ติดต่อกลับ * WNDPROC) (HWND, UINT, WPARAM, LPARAM) 

 

พารามิเตอร์lpPrevWndFuncมีชนิดข้อมูลถ้าเคร่งครัดไม่กำหนด FARPROC ชนิดFARPROCถูกประกาศเป็นดังนี้

int (ไกล WINAPI * FARPROC) () 

 

การประกาศFARPROCระบุว่า ฟังก์ชันการเรียกกลับที่มีรายการพารามิเตอร์ที่ไม่ระบุใน C ใน c ++, อย่างไรก็ตาม ในการประกาศรายการพารามิเตอร์ว่างแสดงว่า ฟังก์ชันมีพารามิเตอร์ไม่ แยกความแตกต่างที่ละเอียดนี้สามารถแบ่งสะเพร่ารหัส ต่อไปนี้เป็นวิธีหนึ่งที่จะจัดการกับสถานการณ์เช่นนี้:

#ifdef MyWindowProcedure WNDPROC เข้มงวด#อื่น FARPROC MyWindowProcedure #endif... lResult = CallWindowProc (MyWindowProcedure,...) 

 

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับฟังก์ชันประกาศพร้อมรายการของอาร์กิวเมนต์ที่ว่าง การอ้างอิงถึงภาษาการเขียนโปรแกรม c ++ The, Second Editionโดย Bjarne Stroustrup.

Windows NT: ฟังก์ชันCallWindowProcการจัดการแปลง Unicode ANSI คุณไม่สามารถใช้ประโยชน์จากแปลงนี้ได้ถ้าคุณเรียกใช้กระบวนงานหน้าต่างโดยตรง.

QuickInfo

nbsp Windows &NT:ต้องการเวอร์ชัน 3.1 หรือรุ่นที่ใหม่กว่า
Windows:ต้องใช้ Windows 95 หรือรุ่นที่ใหม่กว่า
Windows CE:ต้องการเวอร์ชัน 1.0 หรือรุ่นใหม่กว่า
หัวข้อ:ประกาศใน winuser.h
ไลบรารีที่นำเข้า:ใช้ user32.lib
Unicode:นำมาใช้เป็น Unicode และ ANSI รุ่นบน Windows NT.

ดูเพิ่มเติม

หน้าต่างภาพรวมของกระบวนการหน้าต่างกระบวนงานฟังก์ชัน GetWindowLong, SetClassLong, SetWindowLong

Index