DLGTEMPLATEEX

ไม่มีกำหนดโครงสร้างของDLGTEMPLATEEXในแฟ้มหัวข้อมาตรฐานใด ๆ การกำหนดโครงสร้างมาที่นี่เพื่ออธิบายรูปแบบของแม่แบบเพิ่มเติมสำหรับกล่องโต้ตอบ.

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

 typedef struct {WORD dlgVer WORD ลายเซ็น DWORD helpID DWORD exStyle ลักษณะของ DWORD WORD cDlgItems สั้น x y สั้น cx สั้น cy สั้น sz_Or_Ord เมนู / / ชื่อ หรือแสดงลำดับของเมนูทรัพยากร sz_Or_Ord windowClass / / ชื่อ หรือแสดงลำดับของคลาหน้าต่าง ชื่อเรื่อง WCHAR [titleLen]; / / ชื่อเรื่องสายอักขระของกล่องโต้ตอบ pointsize สั้น / / เท่านั้น ถ้าถูกตั้งค่าสถานะ DS_SETFONT น้ำหนักสั้น / / เท่านั้น ถ้าถูกตั้งค่าสถานะ DS_SETFONT bItalic ย่อ / / เท่านั้น ถ้าถูกตั้งค่าสถานะ DS_SETFONT แบบอักษร WCHAR [fontLen]; / / ชื่อแบบอักษร ถ้ามีการตั้งค่า DS_SETFONT } DLGTEMPLATEEX 

สมาชิก

dlgVer
ระบุหมายเลขรุ่นของแม่แบบกล่องโต้ตอบเพิ่มเติม สมาชิกนี้ต้องระบุ 1.
ลายเซ็น
บ่งชี้ว่า แม่แบบ แม่แบบกล่องโต้ตอบเพิ่มเติม ค่าของ 0xFFFF ระบุแม่แบบกล่องโต้ตอบเพิ่มเติม ในกรณีนี้ สมาชิกdlgVerระบุหมายเลขรุ่นของแม่แบบ ถ้าลายเซ็นเป็นค่าใด ๆ ใช่ 0xFFFF นี่คือแบบมาตรฐานที่ใช้โครงสร้างDLGTEMPLATEและDLGITEMTEMPLATE.
helpID
ระบุเป็นตัวระบุเนื้อหาวิธีใช้สำหรับหน้าต่างกล่องโต้ตอบ เมื่อระบบส่งแบบ ข้อความWM_HELPมันผ่านค่านี้ในสมาชิกdwContextIdของการ HELPINFOโครงสร้าง.
exStyle
ระบุลักษณะแบบขยายหน้าต่าง สมาชิกนี้ไม่ได้ถูกใช้ในการสร้างกล่องโต้ตอบ แต่โปรแกรมประยุกต์ที่ใช้แม่แบบของกล่องโต้ตอบสามารถใช้ในการสร้างชนิดอื่น ๆ ของ windows.
ลักษณะ
ระบุลักษณะของกล่องโต้ตอบ สมาชิกนี้สามารถเป็นการรวมกันของค่าลักษณะหน้าต่าง (เช่น WS_CAPTION และ WS_SYSMENU) และหนึ่ง หรือหลายค่าลักษณะกล่องโต้ตอบต่อไปนี้.
ค่า ความหมาย
DS_3DLOOK ทำให้กล่องโต้ตอบแบบอักษร nonbold และวาดเส้นขอบสามมิติรอบหน้าต่างควบคุมในกล่องโต้ตอบ.

จำเป็นต้องมีลักษณะ DS_3DLOOK โดยประยุกต์ใช้ Win32 ที่คอมไพล์แล้วสำหรับระบบรุ่นก่อนหน้า Windows 95 หรือ Windows NT 4.0 เท่านั้น ระบบใช้ลักษณะสามมิติกับกล่องโต้ตอบที่สร้าง โดยโปรแกรมประยุกต์ที่คอมไพล์แล้วสำหรับรุ่นปัจจุบันของระบบโดยอัตโนมัติ.

DS_ABSALIGN บ่งชี้ว่า พิกัดของกล่องโต้ตอบเป็นพิกัดของหน้าจอ ถ้าไม่ระบุลักษณะนี้ ระบบถือเหล่านั้นเป็นพิกัดของไคลเอ็นต์.
DS_CENTER กล่องโต้ตอบในพื้นที่การทำงาน การจัดกึ่งกลาง กล่าวคือ ในพื้นที่ที่ไม่บดบัง โดยถาด.
DS_CENTERMOUSE เคอร์เซอร์ของเมาส์ในกล่องโต้ตอบการจัดกึ่งกลาง.
DS_CONTEXTHELP รวมเครื่องหมายคำถามในแถบชื่อเรื่องของกล่องโต้ตอบ เมื่อผู้ใช้คลิกที่เครื่องหมายคำถาม การเปลี่ยนแปลงเครื่องหมายคำถามกับตัวชี้เคอร์เซอร์ ถ้าผู้ใช้แล้วคลิกที่ตัวควบคุมในกล่องโต้ตอบ ตัวควบคุมได้รับข้อความ WM_HELP ตัวควบคุมควรส่งผ่านข้อความไปยังกระบวนการโต้ตอบ ซึ่งควรเรียก WinHelpฟังก์ชันที่ใช้คำสั่ง HELP_WM_HELP แอปพลิเคชันของวิธีใช้แสดงหน้าต่างแบบผุดขึ้นที่โดยทั่วไปจะประกอบด้วยวิธีใช้สำหรับตัวควบคุม.

หมายเหตุว่า DS_CONTEXTHELP เป็นเท่าตัวยึด เมื่อกล่องโต้ตอบสร้าง ระบบตรวจสอบสำหรับ DS_CONTEXTHELP และ ถ้ามันมี เพิ่ม WS_EX_CONTEXTHELP ลักษณะแบบขยายของกล่องโต้ตอบ คุณไม่สามารถใช้ลักษณะ WS_EX_CONTEXTHELP ด้วยลักษณะ WS_MAXIMIZEBOX หรือ WS_MINIMIZEBOX.

DS_CONTROL สร้างกล่องโต้ตอบที่ทำงานได้ดีเป็นหน้าต่างลูกอื่นกล่องโต้ตอบ เหมือนกับหน้าในแผ่นคุณสมบัติ ลักษณะนี้ช่วยให้ผู้ใช้แท็บระหว่าง windows ตัวควบคุมของกล่องโต้ตอบเด็ก ใช้คีย์ลัดของ และอื่น ๆ.
DS_FIXEDSYS ทำให้กล่องโต้ตอบการใช้ SYSTEM_FIXED_FONT ที่แทนค่าเริ่มต้น SYSTEM_FONT SYSTEM_FIXED_FONT เป็นแบบอักษร monospace:เข้ากันได้กับระบบแบบอักษรใน Windows รุ่นก่อนหน้านี้กว่า 3.0.
DS_LOCALEDIT ใช้ได้กับโปรแกรมประยุกต์ขนาด 16 บิตเท่านั้น ลักษณะนี้นำตัวควบคุมการแก้ไขในกล่องโต้ตอบการจัดสรรหน่วยความจำจากเซ็กเมนต์ข้อมูลของโปรแกรมประยุกต์ มิฉะนั้น แก้ไขควบคุมการปันส่วนเก็บข้อมูลจากวัตถุหน่วยความจำระดับโลก.
DS_MODALFRAME สร้างกล่องโต้ตอบกับกล่องโต้ตอบโมดอลเฟรมที่สามารถถูกรวม ด้วยแถบชื่อเรื่องและเมนูระบบ โดยการระบุลักษณะ WS_CAPTION และ WS_SYSMENU.
DS_NOFAILCREATE Windows 95: สร้างกล่องโต้ตอบแม้ว่าเกิดข้อผิดพลาด — ตัวอย่างเช่น ถ้าไม่สามารถสร้างหน้าต่างลูก หรือ ถ้าระบบไม่สามารถสร้างเซ็กเมนต์ข้อมูลพิเศษสำหรับตัวควบคุมการแก้ไข.
DS_NOIDLEMSG ไม่ใส่ข้อความ WM_ENTERIDLE ที่ระบบจะมิฉะนั้นส่งไปยังเจ้าของกล่องโต้ตอบในขณะที่กล่องโต้ตอบจะแสดงขึ้น.
DS_SETFONT บ่งชี้ว่า ส่วนหัวDLGTEMPLATEEXแบบกล่องโต้ตอบเพิ่มเติมประกอบด้วยสี่เพิ่มเติมสมาชิก (pointsizeน้ำหนัก bItalicและแบบอักษร) ที่อธิบายถึงแบบอักษรที่ใช้สำหรับข้อความในพื้นที่ของไคลเอนต์และตัวควบคุมของกล่องโต้ตอบ ถ้าเป็นไปได้ ระบบสร้างแบบอักษรตามค่าที่ระบุในสมาชิกเหล่านี้ แล้ว ระบบผ่านหมายเลขอ้างอิงของแบบอักษรกล่องโต้ตอบ และตัวควบคุม โดยการส่งข้อความWM_SETFONT.

ถ้าลักษณะนี้ไม่มีระบุ แม่แบบกล่องโต้ตอบเพิ่มเติมไม่รวมสมาชิกpointsizeน้ำหนัก bItalicและแบบอักษร.

DS_SETFOREGROUND ทำให้ระบบใช้ฟังก์ชันSetForegroundWindowเพื่อนำกล่องโต้ตอบไปเบื้องหน้า.
DS_SYSMODAL ลักษณะนี้ล้าสมัย และรวมเข้ากันได้กับ Windows รุ่นก่อนหน้า ถ้าคุณระบุลักษณะนี้ ระบบสร้างกล่องโต้ตอบกับลักษณะ WS_EX_TOPMOST รวมลักษณะนี้ ด้วยลักษณะ DS_CONTROL.

cDlgItems
ระบุจำนวนของตัวควบคุมในกล่องโต้ตอบ.
x
ระบุที่พิกัด x ในการโต้ตอบกล่องหน่วย มุมบนซ้ายของกล่องโต้ตอบ.
y
ระบุการ y-พิกัด ในการโต้ตอบกล่องหน่วย มุมบนซ้ายของกล่องโต้ตอบ.
cx
ระบุความกว้าง โต้ตอบกล่องหน่วย ของกล่องโต้ตอบ.
cy
ระบุความสูง โต้ตอบกล่องหน่วย ของกล่องโต้ตอบ.
เมนู
ระบุเป็นเรย์ความยาว 16 บิตองค์ประกอบที่ระบุถึงทรัพยากรเมนูสำหรับกล่องโต้ตอบ ถ้าองค์ประกอบแรกของอาร์เรย์นี้คือ 0x0000 กล่องโต้ตอบมีไม่มีเมนู และอาร์เรย์มีองค์ประกอบอื่น ๆ ไม่ ถ้าองค์ประกอบแรกคือ 0xFFFF อาร์เรย์มีองค์ประกอบเพิ่มเติมที่หนึ่งที่ระบุค่าแสดงลำดับของเมนูทรัพยากรในแฟ้มที่ปฏิบัติการ ถ้าองค์ประกอบแรกมีค่าอื่น ๆ ระบบถือว่าอาร์เรย์เป็นสตริง Unicode สิ้นสุดด้วยค่า null ที่ระบุชื่อของทรัพยากรที่เมนูในแฟ้มปฏิบัติการได้.
windowClass
ระบุเป็นเรย์ความยาว 16 บิตองค์ประกอบที่ระบุหน้าต่างชั้นของกล่องโต้ตอบ ถ้าองค์ประกอบแรกของอาร์เรย์เป็น 0x0000 ระบบใช้คลากล่องโต้ตอบที่กำหนดไว้ล่วงหน้าสำหรับกล่องโต้ตอบ และอาร์เรย์ได้ไม่มีองค์ประกอบอื่น ๆ ถ้าองค์ประกอบแรกคือ 0xFFFF อาร์เรย์มีองค์ประกอบเพิ่มเติมที่หนึ่งที่ระบุค่าแสดงลำดับของคลาสหน้าต่างระบบกำหนดไว้ล่วงหน้า ถ้าองค์ประกอบแรกมีค่าอื่น ๆ ระบบถือว่าอาร์เรย์เป็นสตริง Unicode สิ้นสุดด้วยค่า null ที่ระบุชื่อของหน้าต่างลงทะเบียนคลาส.
ชื่อเรื่อง
ระบุสตริง Unicode สิ้นสุดด้วยค่า null ที่ประกอบด้วยชื่อเรื่องของกล่องโต้ตอบ ถ้าองค์ประกอบแรกของอาร์เรย์นี้คือ 0x0000 กล่องโต้ตอบได้ไม่มีชื่อเรื่อง และอาร์เรย์ได้ไม่มีองค์ประกอบอื่น ๆ.
pointsize
ระบุขนาดพอยต์ของแบบอักษรที่จะใช้สำหรับข้อความในกล่องโต้ตอบและตัวควบคุม สมาชิกpointsizeน้ำหนัก bItalicและแบบอักษรมีอยู่ในแม่แบบกล่องโต้ตอบเพิ่มเติมเฉพาะในกรณีที่สมาชิกของลักษณะระบุลักษณะ DS_SETFONT.
น้ำหนัก
ระบุน้ำหนักของแบบอักษรในช่วง 0 ถึง 1000 ซึ่งจะแสดงรายการสำหรับสมาชิกlfWeightของค่าใดก็ได้ LOGFONTโครงสร้างได้ สมาชิกนี้มีอยู่เฉพาะในกรณีที่สมาชิกของลักษณะระบุ DS_SETFONT.
bItalic
บ่งชี้ว่า แบบอักษรเป็นตัวเอียง ถ้าค่านี้เป็น TRUE แบบอักษรเป็นตัวเอียง สมาชิกนี้มีอยู่เฉพาะในกรณีที่สมาชิกของลักษณะระบุ DS_SETFONT.
แบบอักษร
สิ้นสุดด้วย null Unicode สตที่ประกอบด้วยชื่อของแบบอักษรที่สำหรับแบบอักษรระบุ สมาชิกนี้มีอยู่เฉพาะในกรณีที่สมาชิกของลักษณะระบุ DS_SETFONT.

หมายเหตุ

คุณสามารถใช้แม่แบบกล่องโต้ตอบเพิ่มเติมแทนที่เป็นของแม่แบบกล่องโต้ตอบมาตรฐานในฟังก์ชันCreateDialogIndirectParamและDialogBoxIndirectParamและแมโคCreateDialogIndirectและDialogBoxIndirect แม่แบบกล่องโต้ตอบมาตรฐานใช้โครงสร้างDLGTEMPLATEและDLGITEMTEMPLATE.

ตามหัวข้อการDLGTEMPLATEEXในแบบกล่องโต้ตอบเพิ่มเติมคือ โครงสร้างDLGITEMTEMPLATEEXอย่าง น้อยหนึ่งที่อธิบายตัวควบคุมของกล่องโต้ตอบ สมาชิกcDlgItemsระบุจำนวนของโครงสร้างของDLGITEMTEMPLATEEXในแม่แบบ.

โครงสร้างแต่ละDLGITEMTEMPLATEEXในแม่แบบจะต้องถูกจัดตำแหน่งบนขอบDWORD หากสมาชิกลักษณะระบุลักษณะ DS_SETFONT โครงสร้างDLGITEMTEMPLATEEXแรกเริ่มต้นบนขอบเขตของDWORDแรกหลังจากสายอักขระแบบอักษร ถ้า DS_SETFONT ไม่มีระบุ โครงสร้างแรกเริ่มบนขอบเขตของDWORDแรกหลังจากสายอักขระในชื่อเรื่อง.

เมนู windowClassหัวข้อ และแบบอักษรค่าอาร์เรย์ต้องถูกจัดตำแหน่งบนขอบเขตของWORD.

ถ้าคุณได้ระบุสายอักขระที่มีอักขระในเมนู windowClassชื่อเรื่องและอาร์เรย์แบบอักษรคุณต้องใช้สายอักขระ Unicode เมื่อต้องการสร้างรหัสที่ทำงานได้ทั้ง Windows และ Windows NT ใช้ฟังก์ชันMultiByteToWideCharในการสร้างสายอักขระ Unicode เหล่านี้.

สมาชิกx, y, cxและcyระบุค่าในหน่วยของกล่องโต้ตอบ คุณสามารถแปลงค่าเหล่านี้เป็นหน้าจอหน่วย (พิกเซล) โดยใช้ฟังก์ชันMapDialogRect.

QuickInfo

nbsp Windows &NT:ต้องการรุ่น 3.51 หรือรุ่นที่ใหม่กว่า
Windows:ต้องใช้ Windows 95 หรือรุ่นที่ใหม่กว่า
Windows CE:ไม่สนับสนุน.

ดูเพิ่มเติม

ภาพรวมของกล่องโต้ตอบโครงสร้างของกล่องโต้ตอบ CreateDialogIndirect, CreateDialogIndirectParam, DialogBoxIndirect, DialogBoxIndirectParam, DLGITEMTEMPLATE, DLGITEMTEMPLATEEX, DLGTEMPLATE, MapDialogRect, MultiByteToWideChar, WM_SETFONT