DLGTEMPLATEโครงสร้างกำหนดขนาดและลักษณะของกล่องโต้ตอบ โครงสร้างนี้ แรกเสมอในแม่แบบมาตรฐานสำหรับกล่องโต้ตอบ นอกจากนี้ ระบุจำนวนของตัวควบคุมในกล่องโต้ตอบ และดังนั้น ระบุจำนวนของโครงสร้างDLGITEMTEMPLATEต่อมาในต้นแบบ.
typedef struct { / / ลักษณะ DWORD dltt
DWORD dwExtendedStyle
WORD cdit
สั้น x
y สั้น
cx สั้น
cy สั้น
} DLGTEMPLATE
ค่า | ความหมาย |
---|---|
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 | บ่งชี้ว่า หัวข้อของแบบกล่องโต้ตอบประกอบด้วยข้อมูลเพิ่มเติมที่ระบุแบบอักษรที่จะใช้สำหรับข้อความในพื้นที่ของไคลเอนต์และตัวควบคุมของกล่องโต้ตอบ ข้อมูลแบบอักษรเริ่มต้นบนขอบเขตWORDที่ตามชื่ออาร์เรย์ ระบุค่าขนาด 16 บิตจุดและสตชื่อแบบอักษร Unicode ถ้าเป็นไปได้ ระบบสร้างแบบอักษรตามค่าที่ระบุ แล้ว ระบบผ่านหมายเลขอ้างอิงของแบบอักษรกล่องโต้ตอบ และตัวควบคุม โดยการส่งข้อความWM_SETFONT. ถ้าลักษณะนี้ไม่มีระบุ แบบกล่องโต้ตอบไม่รวมข้อมูลแบบอักษร. |
DS_SETFOREGROUND | ทำให้ระบบใช้ฟังก์ชันSetForegroundWindowเพื่อนำกล่องโต้ตอบไปเบื้องหน้า. |
DS_SYSMODAL | ลักษณะนี้ล้าสมัย และรวมเข้ากันได้กับ Windows รุ่นก่อนหน้า ถ้าคุณระบุลักษณะนี้ ระบบสร้างกล่องโต้ตอบกับลักษณะ WS_EX_TOPMOST รวมลักษณะนี้ ด้วยลักษณะ DS_CONTROL. |
ในแม่แบบมาตรฐานสำหรับกล่องโต้ตอบDLGTEMPLATEโครงสร้างจะเสมอตาม ด้วยสามอาร์เรย์ความยาวที่ระบุเมนู คลาส และชื่อเรื่องสำหรับกล่องโต้ตอบ เมื่อมีกำหนดลักษณะ DS_SETFONT อาร์เรย์เหล่านี้จะยังแล้วตาม ด้วยค่าแบบ 16 บิตที่ระบุจุดขนาดและความยาวเรย์อื่นที่ระบุชื่อแบบอักษร อาร์เรย์แต่ละประกอบด้วยอย่าง น้อยหนึ่งองค์ประกอบ 16 บิต เมนู คลาส หัวข้อ และแบบอักษรค่าอาร์เรย์ต้องถูกจัดตำแหน่งบนขอบเขตของWORD.
ทันทีต่อโครงสร้างDLGTEMPLATEเป็นอาร์เรย์เป็นเมนูที่ระบุถึงทรัพยากรเมนูสำหรับกล่องโต้ตอบ ถ้าองค์ประกอบแรกของอาร์เรย์นี้คือ 0x0000 กล่องโต้ตอบมีไม่มีเมนู และอาร์เรย์มีองค์ประกอบอื่น ๆ ไม่ ถ้าองค์ประกอบแรกคือ 0xFFFF อาร์เรย์มีองค์ประกอบเพิ่มเติมที่หนึ่งที่ระบุค่าแสดงลำดับของเมนูทรัพยากรในแฟ้มที่ปฏิบัติการ ถ้าองค์ประกอบแรกมีค่าอื่น ๆ ระบบถือว่าอาร์เรย์เป็นสตริง Unicode สิ้นสุดด้วยค่า null ที่ระบุชื่อของทรัพยากรที่เมนูในแฟ้มปฏิบัติการได้.
ต่ออาร์เรย์เมนูคือ อาร์เรย์เป็นคลาสที่ระบุหน้าต่างคลาสของตัวควบคุม ถ้าองค์ประกอบแรกของอาร์เรย์เป็น 0x0000 ระบบใช้คลากล่องโต้ตอบที่กำหนดไว้ล่วงหน้าสำหรับกล่องโต้ตอบ และอาร์เรย์ได้ไม่มีองค์ประกอบอื่น ๆ ถ้าองค์ประกอบแรกคือ 0xFFFF อาร์เรย์มีองค์ประกอบเพิ่มเติมที่หนึ่งที่ระบุค่าแสดงลำดับของคลาสหน้าต่างระบบกำหนดไว้ล่วงหน้า ถ้าองค์ประกอบแรกมีค่าอื่น ๆ ระบบถือว่าอาร์เรย์เป็นสตริง Unicode สิ้นสุดด้วยค่า null ที่ระบุชื่อของหน้าต่างลงทะเบียนคลาส.
ต่อชั้นอาร์เรย์เป็นอาร์เรย์เป็นชื่อเรื่องที่ระบุสตริง Unicode สิ้นสุดด้วยค่า null ที่ประกอบด้วยชื่อเรื่องของกล่องโต้ตอบ ถ้าองค์ประกอบแรกของอาร์เรย์นี้คือ 0x0000 กล่องโต้ตอบได้ไม่มีชื่อเรื่อง และอาร์เรย์ได้ไม่มีองค์ประกอบอื่น ๆ.
ค่าขนาด 16 บิตจุดและอาร์เรย์แบบอักษรตามชื่อเรย์ แต่ถ้าสมาชิกลักษณะระบุลักษณะ DS_SETFONT ค่าขนาดจุดระบุขนาดพอยต์ของแบบอักษรที่จะใช้สำหรับข้อความในกล่องโต้ตอบและตัวควบคุม อาร์เรย์แบบอักษรจะหยุดการทำงานเป็น null Unicode สตระบุชื่อของแบบอักษรที่สำหรับแบบอักษร เมื่อค่าเหล่านี้จะได้รับ ระบบสร้างแบบอักษรที่มีการกำหนดขนาดและแบบตัวพิมพ์ (ถ้าเป็นไปได้) และส่งข้อความ WM_SETFONT กับขั้นตอนในกล่องโต้ตอบและตัวควบคุมหน้าต่างกระบวนขณะที่สร้างกล่องโต้ตอบและตัวควบคุม.
ตามหัวข้อการDLGTEMPLATEในแม่แบบกล่องโต้ตอบมาตรฐานมีโครงสร้างDLGITEMTEMPLATEหนึ่ง หรือมากกว่าที่กำหนดขนาดและลักษณะของตัวควบคุมในกล่องโต้ตอบ สมาชิกcditระบุจำนวนของโครงสร้างของDLGITEMTEMPLATEในแม่แบบ โครงสร้างDLGITEMTEMPLATEเหล่านี้ต้องถูกจัดตำแหน่งบนขอบเขตของDWORD.
ถ้าคุณได้ระบุสายอักขระที่มีอักขระในเมนู คลาส ชื่อ หรืออาร์เรย์ของไทป์เฟซ คุณต้องใช้สายอักขระ Unicode เมื่อต้องการสร้างรหัสที่ทำงานได้ทั้ง Windows และ Windows NT ใช้ฟังก์ชันMultiByteToWideCharในการสร้างสายอักขระ Unicode เหล่านี้.
สมาชิกx, y, cxและcyระบุค่าในหน่วยของกล่องโต้ตอบ คุณสามารถแปลงค่าเหล่านี้เป็นหน้าจอหน่วย (พิกเซล) โดยใช้ฟังก์ชันMapDialogRect.
nbsp Windows &NT:ต้องการเวอร์ชัน 3.1 หรือรุ่นที่ใหม่กว่า
Windows:ต้องใช้ Windows 95 หรือรุ่นที่ใหม่กว่า
Windows CE:ต้องการเวอร์ชัน 1.0 หรือรุ่นใหม่กว่า
หัวข้อ:ประกาศใน winuser.h.
ภาพรวมของกล่องโต้ตอบโครงสร้างของกล่องโต้ตอบ CreateDialogIndirect, CreateDialogIndirectParam, DialogBoxIndirect, DialogBoxIndirectParam, DLGITEMTEMPLATE, DLGITEMTEMPLATEEX, DLGTEMPLATEEX, MapDialogRect, MultiByteToWideChar