PeekMessage

ฟังก์ชันPeekMessageตรวจสอบคิวข้อความหัวข้อสำหรับข้อความ และวางข้อความ (ถ้ามี) ในโครงสร้างที่ระบุ.

(BOOL PeekMessage LPMSG  lpMsg, / / ชี้ไปยังโครงสร้างสำหรับข้อความHWNDhWnd, / / จัดการหน้าต่างUINTwMsgFilterMin, / / ข้อความแรกUINTwMsgFilterMax, / / ข้อความล่าสุดUINTwRemoveMsg / / เอาค่าสถานะ);
 

พารามิเตอร์

lpMsg
ชี้มีโครงสร้างMSGซึ่งได้รับข้อมูลของข้อความ.
hWnd
จัดการไปยังหน้าต่างข้อความจะถูกตรวจสอบ.
wMsgFilterMin
ระบุค่าของข้อความแรกในช่วงของข้อความที่จะถูกตรวจสอบ.
wMsgFilterMax
ระบุค่าของข้อความล่าสุดในช่วงของข้อความที่จะถูกตรวจสอบ.
wRemoveMsg
ระบุวิธีจัดการข้อความ พารามิเตอร์นี้สามารถเป็นหนึ่งในค่าต่อไปนี้:
ค่า ความหมาย
PM_NOREMOVE ข้อความจะไม่ถูกลบออกจากคิวหลังจากดำเนินการโดยPeekMessage.
PM_REMOVE ข้อความจะถูกเอาออกจากคิวหลังจากดำเนินการโดยPeekMessage.

นอกจากนี้คุณจะสามารถรวมค่า PM_NOYIELD กับ PM_NOREMOVE หรือ PM_REMOVE ธงนี้ป้องกันระบบจากการปล่อยทุกหัวข้อที่กำลังรอให้ผู้เรียกไปใช้งาน (ดู WaitForInputIdle).

โดยค่าเริ่มต้น ชนิดของข้อความทั้งหมดถูกประมวลผล เมื่อต้องการระบุว่า เฉพาะบางข้อความควรจะถูกประมวลผล ระบุอย่างใดอย่างหนึ่งในค่าต่อไปนี้เพิ่มเติม:
ค่า ความหมาย
PM_QS_INPUT Windows NT 5.0 และ Windows 98: การประมวลผลเมาส์และแป้นพิมพ์ข้อความ.
PM_QS_PAINT Windows NT 5.0 และ Windows 98: ข้อความที่โปรแกรมระบายสีขั้นตอน.
PM_QS_POSTMESSAGE Windows NT 5.0 และ Windows 98: ข้อความขั้นตอนทั้งหมดที่ลงรายการบัญชี การรวมตัวจับเวลาและ hotkeys.
PM_QS_SENDMESSAGE Windows NT 5.0 และ Windows 98: ขั้นตอนทั้งหมดส่งข้อความ.

ส่งกลับค่า

ถ้าข้อความจะพร้อมใช้งาน ส่งคืนค่าเป็นไม่ใช่ศูนย์.

ถ้าไม่มีข้อความจะพร้อมใช้งาน ส่งคืนค่าเป็นศูนย์.

หมายเหตุ

แตกต่างจากฟังก์ชันGetMessageฟังก์ชันPeekMessageไม่รอให้ข้อความจะถูกวางลงในคิวก่อนกลับมา.

PeekMessageดึงเฉพาะข้อความเกี่ยวข้องกับหน้าต่างการระบุพารามิเตอร์hWndหรือใด ๆ ของเด็กตามที่ระบุไว้ โดยฟังก์ชันIsChildและภาย ในช่วงของค่าข้อความที่กำหนดให้ โดยพารามิเตอร์wMsgFilterMinและwMsgFilterMax ถ้าhWndเป็น NULL, PeekMessageดึงข้อความสำหรับหน้าต่างใดก็ได้ที่เป็นของเธรดปัจจุบันทำให้การโทร (PeekMessageเรียกข้อความสำหรับ windows ที่เป็นของเธรดอื่น) ถ้าhWnd – 1, PeekMessageจะส่งกลับข้อความที่ มีค่าhWnd NULL ในขณะที่ลงรายการบัญชี โดยฟังก์ชันPostThreadMessage ถ้าwMsgFilterMinและwMsgFilterMaxเป็นทั้งศูนย์PeekMessageส่งกลับข้อความทั้งหมดที่มีอยู่ (นั่นคือ ช่วงไม่มีการกรองจะดำเนิน).

ค่าคง WM_KEYFIRST และ WM_KEYLAST สามารถใช้เป็นตัวกรองค่าเพื่อดึงข้อความทั้งหมดของแป้นพิมพ์ สามารถใช้ค่าคง WM_MOUSEFIRST และ WM_MOUSELAST ในการเรียกข้อความทั้งหมดของเมาส์.

ฟังก์ชันPeekMessageปกติไม่ออก WM_PAINT ข้อความจากคิว WM_PAINT ข้อความยังคงอยู่ในคิวจนกว่าพวกเขาจะถูกประมวลผล อย่างไรก็ตาม ถ้าข้อความ WM_PAINT ได้ในขอบเขตของการปรับปรุงค่า null, PeekMessageออกจากคิว.

Windows CE: WM_PAINT ข้อความในขอบเขตของการปรับปรุงค่า null จะไม่ถูกเอาออกจากคิว.

QuickInfo

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

ดูเพิ่มเติม

ข้อความและภาพรวมของคิวข้อความข้อความและฟังก์ชันคิวข้อความ GetMessage, IsChild, MSG, WaitForInputIdle, WaitMessage

Index