ไม่มีกำหนดโครงสร้างของ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
| ค่า | ความหมาย |
|---|---|
| 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. |
คุณสามารถใช้แม่แบบกล่องโต้ตอบเพิ่มเติมแทนที่เป็นของแม่แบบกล่องโต้ตอบมาตรฐานในฟังก์ชัน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.
nbsp Windows &NT:ต้องการรุ่น 3.51 หรือรุ่นที่ใหม่กว่า
Windows:ต้องใช้ Windows 95 หรือรุ่นที่ใหม่กว่า
Windows CE:ไม่สนับสนุน.
ภาพรวมของกล่องโต้ตอบโครงสร้างของกล่องโต้ตอบ CreateDialogIndirect, CreateDialogIndirectParam, DialogBoxIndirect, DialogBoxIndirectParam, DLGITEMTEMPLATE, DLGITEMTEMPLATEEX, DLGTEMPLATE, MapDialogRect, MultiByteToWideChar, WM_SETFONT