MessageBox

ฟังก์ชันMessageBoxสร้าง แสดง และกล่องข้อความที่ดำเนินงาน กล่องข้อความประกอบด้วยข้อความที่กำหนดโดยโปรแกรมประยุกต์ และชื่อเรื่อง บวกรวมกันของไอคอนที่กำหนดไว้ล่วงหน้าและกดปุ่ม.

int MessageBox ( HWND  hWnd, / / จัดการของเจ้าของหน้าต่างLPCTSTRlpText, / / ที่อยู่ของข้อความในกล่องข้อความLPCTSTRlpCaption, / / ที่อยู่ของชื่อเรื่องของกล่องข้อความUINTuType / / ลักษณะของกล่องข้อความ);
 

พารามิเตอร์

hWnd
ระบุเจ้าของหน้าต่างของกล่องข้อความที่ต้องการจะสร้าง ถ้าพารามิเตอร์นี้เป็นค่า NULL กล่องข้อความมีหน้าต่างไม่มีเจ้าของ.
lpText
ชี้ไปยังสายสิ้นสุดด้วยค่า null ที่ประกอบด้วยข้อความจะแสดง.
lpCaption
ชี้การสิ้นสุดด้วย null สตใช้กับชื่อเรื่องของกล่องโต้ตอบ ถ้าพารามิเตอร์นี้เป็น NULL ข้อผิดพลาดจะใช้ชื่อเริ่มต้น.
uType
ระบุชุดของค่าสถานะบิตที่กำหนดเนื้อหาและลักษณะการทำงานของกล่องโต้ตอบ พารามิเตอร์นี้จะเป็นการรวมกันของค่าสถานะจากกลุ่มของค่าสถานะต่อไปนี้.

ระบุค่าสถานะเพื่อแสดงปุ่มมีอยู่ในกล่องข้อความต่อไปนี้อย่างใดอย่างหนึ่ง:
ค่าสถานะ ความหมาย
MB_ABORTRETRYIGNORE กล่องข้อความประกอบด้วยปุ่มสาม: การยก เลิก ลองใหม่ และละเว้น.
MB_OK กล่องข้อความประกอบด้วยปุ่มกดที่หนึ่ง: OK นี่คือค่าเริ่มต้น.
MB_OKCANCEL กล่องข้อความประกอบด้วยสองปุ่ม: ตกลง และยกเลิก.
MB_RETRYCANCEL กล่องข้อความประกอบด้วยสองปุ่ม: ลองใหม่ และยกเลิก.
MB_YESNO กล่องข้อความประกอบด้วยสองปุ่ม: ใช่ และไม่ใช่.
MB_YESNOCANCEL กล่องข้อความประกอบด้วยปุ่มสาม: ใช่ ไม่ และยกเลิก.

ระบุค่าสถานะเพื่อแสดงไอคอนในกล่องข้อความต่อไปนี้อย่างใดอย่างหนึ่ง:
ค่าสถานะ ความหมาย
MB_ICONEXCLAMATION
MB_ICONWARNING
ไอคอนเครื่องหมายอัศเจรีย์จุดปรากฏในกล่องข้อความ.
MB_ICONINFORMATION, MB_ICONASTERISK
ไอคอนที่ประกอบด้วยตัวอักษรตัวพิมพ์เล็กตัวฉันในวงกลมปรากฏในกล่องข้อความ.
MB_ICONQUESTION ไอคอนเครื่องหมายคำถามปรากฏในกล่องข้อความ.
MB_ICONSTOP
MB_ICONERROR
MB_ICONHAND
ไอคอนหยุดเครื่องหมายปรากฏขึ้นในกล่องข้อความ.

ระบุค่าสถานะต่อไปนี้เพื่อบ่งชี้ปุ่มเริ่มต้นอย่างใดอย่างหนึ่ง:
ค่าสถานะ ความหมาย
MB_DEFBUTTON1 ปุ่มแรกคือ ปุ่มเริ่มต้น.

MB_DEFBUTTON1 เป็นค่าเริ่มต้นยกเว้นมีระบุ MB_DEFBUTTON2, MB_DEFBUTTON3 หรือ MB_DEFBUTTON4.

MB_DEFBUTTON2 ปุ่มที่สองคือ ปุ่มเริ่มต้น.
MB_DEFBUTTON3 ปุ่มที่สามคือ ปุ่มเริ่มต้น.
MB_DEFBUTTON4 สี่ปุ่มคือ ปุ่มเริ่มต้น.

ระบุค่าสถานะต่อไปนี้เพื่อระบุการ modality ของกล่องโต้ตอบอย่างใดอย่างหนึ่ง:
ค่าสถานะ ความหมาย
MB_APPLMODAL ผู้ใช้ต้องตอบสนองไปยังกล่องข้อความก่อนทำงานในหน้าต่างที่ถูกระบุ ด้วยพารามิเตอร์hWnd อย่างไรก็ตาม ผู้ใช้สามารถย้ายไปยังหัวข้ออื่น ๆ ของ windows และการทำงานในหน้าต่างเหล่านั้น.

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

MB_APPLMODAL เป็นค่าเริ่มต้นถ้ามีระบุทั้ง MB_SYSTEMMODAL และ MB_TASKMODAL.

MB_SYSTEMMODAL เหมือน MB_APPLMODAL ยกเว้นว่ากล่องข้อความมีลักษณะ WS_EX_TOPMOST ใช้กล่องข้อความระบบ-modal เพื่อแจ้งผู้ใช้ ร้ายแรงอาจทำลายข้อผิดพลาดที่ต้องการความสนใจทันที (ตัวอย่าง การเรียกใช้หน่วยความจำ) ธงชาตินี้ไม่มีผลต่อความสามารถของผู้ใช้โต้ตอบกับ windows อื่น ๆ นอกเหนือจากที่เกี่ยวข้องกับhWnd.
MB_TASKMODAL เหมือน MB_APPLMODAL ยกเว้นว่าระดับบนหน้าต่างทั้งหมดเป็นของเธรดปัจจุบันถูกปิดการใช้งานถ้าพารามิเตอร์hWndเป็น NULL ใช้ธงชาตินี้เมื่อโปรแกรมประยุกต์หรือไลบรารีโทรไม่มีหมายเลขอ้างอิงหน้าต่างที่พร้อมใช้งาน แต่ยังคง ต้องการในการป้องกันการป้อนข้อมูลลงในหน้าต่างอื่นในเธรดเรียกโดยไม่หยุดกระทู้อื่น ๆ.

นอกจากนี้ คุณสามารถระบุค่าสถานะต่อไปนี้:

MB_DEFAULT_DESKTOP_ONLY
เดสก์ท็อปในปัจจุบันได้รับการป้อนข้อมูลต้องเป็นเดสก์ท็อปเริ่มต้น มิฉะนั้น ฟังก์ชันล้มเหลว เดสก์ท็อปที่เป็นค่าเริ่มต้นเป็นหนึ่งในโปรแกรมประยุกต์ทำงานบนหลังจากที่ผู้ใช้ล็อกออ.
MB_HELP
เพิ่มปุ่มวิธีใช้กล่องข้อความ เลือกปุ่ม'วิธีใช้' หรือกด F1 สร้างเป็นเหตุการณ์ความช่วยเหลือ.
MB_RIGHT
ข้อความอยู่ชิดขอบขวา.
MB_RTLREADING
แสดงข้อความข้อความและป้ายคำอธิบายที่ใช้ลำดับการอ่านจากขวาไปซ้ายบนระบบภาษาฮิบรูและอาหรับ.
MB_SETFOREGROUND
กล่องข้อความกลายเป็น หน้าต่างการทำงานเบื้องหน้า ภายใน ระบบการเรียกฟังก์ชันSetForegroundWindowสำหรับกล่องข้อความ.
MB_TOPMOST
กล่องข้อความถูกสร้างขึ้น ด้วยลักษณะหน้าต่าง WS_EX_TOPMOST.
MB_SERVICE_NOTIFICATION
Windows NT: ผู้เรียกเป็นบริการแจ้งเตือนผู้ใช้ของเหตุการณ์ ฟังก์ชันจะแสดงในกล่องข้อความบนเดสก์ท็อปใช้งานอยู่ปัจจุบัน แม้ว่าจะไม่มีผู้ใช้ที่เข้าสู่ระบบคอมพิวเตอร์.

ถ้าธงนี้ มีการตั้งค่าพารามิเตอร์hWndต้องเป็น NULL นี่คือเพื่อให้กล่องข้อความจะปรากฏขึ้นบนเดสก์ท็อปอื่น ๆ นอกเหนือจากการเดสก์ท็อปที่ที่สอดคล้องกับhWnd.

สำหรับ Windows NT 4.0 รุ่น ค่าของ MB_SERVICE_NOTIFICATION มีการเปลี่ยนแปลง ดู WINUSERH สำหรับค่าเก่า และใหม่ Windows NT 4.0 มีความเข้ากันได้แบบย้อนหลังสำหรับการบริการที่มีอยู่แล้ว โดยการแม็ปค่าเก่ากับค่าใหม่ในการใช้งานMessageBoxและMessageBoxEx แมปนี้ทำได้เฉพาะสำหรับ executables ที่มีหมายเลขรุ่น เป็นชุดโดยตัวเชื่อมที่โยง ต่ำกว่า 4.0.

เมื่อต้องการสร้างบริการที่ใช้ MB_SERVICE_NOTIFICATION และสามารถเรียกใช้บนทั้ง 3.x Windows NT และ Windows NT 4.0 คุณมีสองตัวเลือก.
  1. การเชื่อมโยงเวลา ระบุหมายเลขรุ่นน้อยกว่า 4.0 หรือ
nbsp   2. เวลาเชื่อมโยง- ระบุเวอร์ชัน 4.0 ที่เวลาทำงาน ใช้ฟังก์ชันGetVersionExเพื่อตรวจสอบรุ่นระบบ จากนั้น เมื่อทำงานบน Windows &NT 3.x ใช้ MB_SERVICE_NOTIFICATION_NT3X และบน Windows NT 4.0 ใช้ MB_SERVICE_NOTIFICATION.

MB_SERVICE_NOTIFICATION_NT3X
Windows NT: ค่านี้ตรงกับค่ากำหนดไว้สำหรับ MB_SERVICE_NOTIFICATION สำหรับ Windows NT 3.51 รุ่น.

ส่งกลับค่า

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

ถ้าฟังก์ชันสำเร็จ ค่าส่งกลับเป็นหนึ่งในค่ารายการเมนูต่อไปนี้ส่งกลับ โดยใช้กล่องโต้ตอบ:

ค่า ความหมาย
IDABORT เลือกปุ่มยกเลิก.
IDCANCEL เลือกปุ่มยกเลิก.
IDIGNORE ละเว้นเลือกปุ่ม.
IDNO ปุ่มไม่ถูกเลือก.
IDOK เลือกปุ่ม OK.
IDRETRY เลือกปุ่มการลองส่งใหม่.
IDYES ใช่ปุ่มเลือก.

ถ้ากล่องข้อความมีปุ่มยกเลิก ฟังก์ชันจะส่งกลับค่า IDCANCEL ถ้ามีกดปุ่ม esc หรือเลือกปุ่มยกเลิก ถ้ากล่องข้อความได้ไม่มีปุ่มยกเลิก การกด esc ไม่มีผล.

หมายเหตุ

เมื่อคุณใช้กล่องข้อความระบบ-modal เพื่อบ่งชี้ว่า ระบบมีน้อยบนหน่วยความจำ สายอักขระที่ชี้ไปตามlpTextและlpCaptionพารามิเตอร์ไม่ควรถูกนำมาจากแฟ้มทรัพยากร เนื่องจากความพยายามที่จะโหลดทรัพยากรอาจล้มเหลว.

เมื่อแอปพลิเคชันเรียกใช้MessageBoxและระบุค่าสถานะ MB_ICONHAND และ MB_SYSTEMMODAL สำหรับพารามิเตอร์uTypeระบบจะแสดงในกล่องข้อความผลลัพธ์คำนึงถึงหน่วยความจำที่มีอยู่ เมื่อมีระบุค่าสถานะเหล่านี้ ระบบการจำกัดความยาวของข้อความกล่องข้อความสามบรรทัด ระบบไม่แบ่งบรรทัดให้พอดีกับกล่องข้อความ อย่างไรก็ตาม โดยอัตโนมัติเพื่อให้สายอักขระข้อความต้องประกอบด้วยอักขระการแบ่งบรรทัดที่สถานที่เหมาะสม.

ถ้าคุณสร้างกล่องข้อความในขณะที่กล่องโต้ตอบมีอยู่ ใช้หมายเลขอ้างอิงของกล่องโต้ตอบเป็นพารามิเตอร์hWnd พารามิเตอร์hWndไม่ควรระบุหน้าต่างลูก เช่นตัวควบคุมในกล่องโต้ตอบ.

Windows 95:ระบบสามารถรองรับได้สูงสุดของหมายเลขอ้างอิงหน้าต่าง 16,364.

Windows CE: Windows CE ไม่สนับสนุนในลักษณะต่อไปนี้สำหรับพารามิเตอร์uType

MB_SYSTEMMODAL

MB_TASKMODAL

MB_HELP

MB_RIGHT

MB_RTLREADING

MB_DEFAULT_DESKTOP_ONLY

MB_SERVICE_NOTIFICATION

MB_USERICON.

ต่อไปนี้กลับไม่มีสนับสนุนค่า:

IDCLOSE

IDHELP

QuickInfo

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

ดูเพิ่มเติม

ภาพรวมของกล่องโต้ตอบฟังก์ชันของกล่องโต้ตอบ FlashWindow, MessageBeep, MessageBoxEx, MessageBoxIndirect, SetForegroundWindow

Index