MessageBoxEx

ฟังก์ชันMessageBoxExสร้าง แสดง และกล่องข้อความที่ดำเนินงาน กล่องข้อความประกอบด้วยข้อความที่กำหนดโดยโปรแกรมประยุกต์ และชื่อเรื่อง บวกรวมกันของไอคอนที่กำหนดไว้ล่วงหน้าและกดปุ่ม ชุดทรัพยากรภาษาที่ใช้สำหรับปุ่มกำหนดไว้ล่วงหน้าในการระบุพารามิเตอร์wLanguageId สำหรับคำอธิบายที่สมบูรณ์ของพารามิเตอร์อื่น ๆ ของMessageBoxExดูMessageBox.

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

พารามิเตอร์

hWnd
ระบุเจ้าของหน้าต่างของกล่องข้อความที่ต้องการจะสร้าง ถ้าพารามิเตอร์นี้เป็นค่า NULL กล่องข้อความมีหน้าต่างไม่มีเจ้าของ.
lpCaption
ชี้ไปยังสายสิ้นสุดด้วยค่า null ที่ประกอบด้วยข้อความจะแสดง.
lpszTitle
ชี้การสิ้นสุดด้วย 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 รุ่น.
wLanguageId
ระบุภาษาที่แสดงข้อความมีอยู่ในปุ่มกำหนดไว้ล่วงหน้า ค่านี้ต้องอยู่ในแบบฟอร์มที่ส่งกลับโดย MAKELANGIDแมโคร.

ดูรายการของตัวระบุภาษาที่ได้รับการสนับสนุน โดย Win32, ระบุภาษา หมายเหตุแต่ละถิ่นรุ่นของ Windows และ Windows NT โดยทั่วไปจะประกอบด้วยทรัพยากรสำหรับชุดภาษาเท่านั้น ปาน ตัวอย่าง รุ่นสหรัฐเสนอ LANG_ENGLISH รุ่นภาษาฝรั่งเศสเสนอ LANG_FRENCH รุ่นภาษาเยอรมันมี LANG_GERMAN และเวอร์ชันภาษาญี่ปุ่นเสนอ LANG_JAPANESE แต่ละรุ่นมี LANG_NEUTRAL วิธีการนี้ช่วยจำกัดชุดของค่าที่สามารถใช้ได้กับพารามิเตอร์wLanguageId ก่อนที่จะระบุตัวระบุภาษา คุณควรระบุตำแหน่งที่ตั้งที่ถูกติดตั้งในระบบ.

ส่งกลับค่า

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

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

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

ถ้าฟังก์ชันล้มเหลว ส่งคืนค่าเป็นศูนย์ การขอเพิ่มเติมข้อมูลข้อผิดพลาด โทร GetLastError.

หมายเหตุ

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

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

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

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

QuickInfo

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

ดูเพิ่มเติม

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

Index