OPENFILENAME

OPENFILENAMEโครงสร้างประกอบด้วยข้อมูลที่ใช้ฟังก์ชันGetSaveFileNameและGetOpenFileNameในการเปิดหรือบันทึกทั่วไปกล่องโต้ตอบเป็นการเตรียมใช้งาน หลังจากผู้ใช้ปิดกล่องโต้ตอบ ระบบการส่งกลับข้อมูลเกี่ยวกับการเลือกของผู้ใช้ในโครงสร้างนี้ .

typedef struct tagOFN { / / ofn DWORD lStructSize 
    HWND hwndOwner 
    HINSTANCE hInstance 
    LPCTSTR lpstrFilter 
    LPTSTR lpstrCustomFilter 
    DWORD nMaxCustFilter 
    DWORD nFilterIndex 
    LPTSTR lpstrFile 
    DWORD nMaxFile 
    LPTSTR lpstrFileTitle 
    DWORD nMaxFileTitle 
    LPCTSTR lpstrInitialDir 
    LPCTSTR lpstrTitle 
    DWORD Flags 
    WORD nFileOffset 
    WORD nFileExtension 
    LPCTSTR lpstrDefExt 
    DWORD lCustData 
    LPOFNHOOKPROC lpfnHook 
    LPCTSTR lpTemplateName 
} OPENFILENAME 
 

สมาชิก

lStructSize
ระบุความยาว ไบต์ โครงสร้าง.
hwndOwner
ระบุหน้าต่างที่เป็นเจ้าของกล่องโต้ตอบ สมาชิกนี้สามารถถูกหมายเลขอ้างอิงหน้าต่างที่ถูกต้องใด ๆ หรือสามารถเป็นค่า NULL ถ้ากล่องโต้ตอบได้ไม่มีเจ้าของ.
hInstance
หากถูกตั้งค่าสถานะ OFN_ENABLETEMPLATEHANDLE ในสถานะสมาชิกhInstanceคือหมายเลขอ้างอิงของวัตถุของหน่วยความจำประกอบด้วยแม่แบบกล่องโต้ตอบ หากถูกตั้งค่าสถานะ OFN_ENABLETEMPLATE, hInstanceระบุโมดูลที่ประกอบด้วยแบบกล่องโต้ตอบที่มีชื่อ โดยlpTemplateNameสมาชิก ถ้าไม่มีการตั้งค่า สมาชิกนี้จะถูกละเว้น.

หากถูกตั้งค่าสถานะ OFN_EXPLORER ระบบใช้แม่แบบที่ระบุเพื่อสร้างกล่องโต้ตอบที่เป็นลูกของ Explorer-ลักษณะเริ่มต้นกล่องโต้ตอบ หากถูกตั้งค่าสถานะ OFN_EXPLORER ระบบใช้แม่แบบเพื่อสร้างกล่องโต้ตอบลักษณะเดิมที่แทนกล่องโต้ตอบเริ่มต้น.

lpstrFilter
ชี้การบัฟเฟอร์ที่ประกอบด้วยคู่สายของตัวกรองที่หยุดการทำงานเป็น null สายอักขระสุดท้ายในบัฟเฟอร์ต้องตาย โดยอักขระ NULL สองตัว.

สายอักขระแรกในแต่ละคู่เป็นสายอักขระแสดงที่อธิบายตัวกรอง (ตัวอย่างเช่น, "แฟ้ม"), และสายอักขระสองระบุรูปแบบของการกรอง (ตัวอย่างเช่น, " *TXT") เมื่อต้องการระบุลวดลายตัวกรองหลายสำหรับสตริงที่แสดงเดี่ยว ใช้เครื่องหมายอัฒภาคแยกรูปแบบ (เช่น, " *TXT; *เอกสาร; *บาก") รูปแบบสายอักขระสามารถเป็นการรวมกันของชื่อแฟ้มถูกต้องอักขระและอักขระตัวแทนเครื่องหมายดอกจัน (*) ไม่มีช่องว่างในรูปแบบสายอักขระ.

ระบบไม่เปลี่ยนลำดับของตัวกรอง มันแสดงในกล่องคำสั่งผสมประเภทแฟ้มตามลำดับระบุไว้ในlpstrFilter .

ถ้าlpstrFilterเป็น NULL กล่องโต้ตอบแสดงตัวกรองใด ๆ.

lpstrCustomFilter
ชี้การบัฟเฟอร์แบบคงที่ประกอบด้วยคู่สายอักขระที่มีตัวกรองที่หยุดการทำงานเป็น null สำหรับเก็บรักษารูปแบบของตัวกรองที่เลือก โดยผู้ใช้ สายอักขระแรกของสตริงที่แสดงที่อธิบายตัวกรองแบบกำหนดเอง และสายอักขระสองเป็นรูปแบบของตัวกรองที่เลือก โดยผู้ใช้ ในครั้งแรกที่โปรแกรมประยุกต์ของคุณสร้างกล่องโต้ตอบ คุณระบุสายอักขระแรก ซึ่งสามารถเป็นสตริ nonempty เมื่อผู้ใช้เลือกแฟ้ม กล่องโต้ตอบคัดลอกรูปแบบของการกรองปัจจุบันกับสายอักขระสอง รูปแบบของการรักษาตัวกรองสามารถเป็นหนึ่งในรูปแบบระบุไว้ในบัฟเฟอร์lpstrFilterหรือสามารถเป็นตัวกรองแบบพิมพ์ โดยผู้ใช้ ระบบใช้สายอักขระการเตรียมใช้งานตัวกรองไฟล์ที่ผู้ใช้กำหนดในครั้งถัดไปที่มีสร้างกล่องโต้ตอบ ถ้าสมาชิกnFilterIndexเป็นศูนย์ กล่องโต้ตอบการใช้ตัวกรองแบบกำหนดเอง.

ถ้าสมาชิกนี้เป็น NULL กล่องโต้ตอบการรักษารูปแบบผู้ใช้กำหนดตัวกรอง.

ถ้าสมาชิกนี้ไม่ใช่ค่า NULL ค่าของสมาชิกnMaxCustFilterต้องระบุขนาด ไบต์ (รุ่น ANSI) หรืออักขระ 16 บิต (รุ่น Unicode), ของบัฟเฟอร์lpstrCustomFilter.

nMaxCustFilter
ระบุขนาด ไบต์หรืออักขระ ของบัฟเฟอร์ที่ระบุโดยlpstrCustomFilter บัฟเฟอร์นี้ควรมีความยาวอักขระอย่างน้อย 40 ตัว สมาชิกนี้จะถูกละเว้นถ้าlpstrCustomFilterเป็น NULL หรือจุดในสายอักขระ NULL.
nFilterIndex
ระบุดัชนีของตัวกรองที่เลือกในปัจจุบันในตัวควบคุมชนิดของแฟ้ม บัฟเฟอร์ที่ชี้ไปตามlpstrFilterประกอบด้วยคู่ของสายอักขระที่กำหนดตัวกรอง สายคู่แรกมีค่าดัชนี 1 สองจับคู่ 2 และอื่น ๆ ศูนย์ดัชนีบ่งชี้ตัวกรองแบบกำหนดเองที่ระบุโดยlpstrCustomFilter คุณสามารถระบุดัชนีในการป้อนข้อมูลเพื่อบ่งชี้ถึงการกรองเริ่มต้นคำอธิบายและตัวกรองรูปสำหรับกล่องโต้ตอบ เมื่อผู้ใช้เลือกแฟ้มnFilterIndexส่งกลับค่าดัชนีของตัวกรองที่แสดงอยู่ในปัจจุบัน.

ถ้าnFilterIndexเป็นศูนย์ และlpstrCustomFilterเป็น NULL ระบบใช้ตัวแรกในบัฟเฟอร์lpstrFilter กรณีที่สมาชิกทุกคนที่สามเป็นศูนย์หรือ NULL ระบบใช้ตัวกรองใด ๆ และไม่ต้องแสดงแฟ้มใด ๆ ในตัวควบคุมรายการแฟ้มของกล่องโต้ตอบ.

lpstrFile
ชี้การบัฟเฟอร์ที่ประกอบด้วยชื่อแฟ้มที่ใช้ชื่อแฟ้มการเตรียมใช้งาน ตัวควบคุมที่มีแก้ไข อักขระตัวแรกของบัฟเฟอร์นี้ต้องเป็นค่า NULL ถ้าเตรียมใช้งานไม่จำเป็น เมื่อฟังก์ชันGetOpenFileNameหรือGetSaveFileNameส่งกลับเรียบร้อยแล้ว บัฟเฟอร์นี้ประกอบด้วยไดรฟ์ designator เส้นทาง filename และส่วนขยายของแฟ้มที่เลือก.

ถ้ามีการตั้งค่าการตั้งค่าสถานะ OFN_ALLOWMULTISELECT และผู้ใช้เลือกแฟ้มหลาย ๆ แฟ้ม บัฟเฟอร์ประกอบด้วยไดเรกทอรีปัจจุบันตาม ด้วยชื่อแฟ้มของแฟ้มที่เลือก สำหรับกล่องโต้ตอบลักษณะ Explorer สายอักขระไดเรกทอรีและชื่อแฟ้มเป็น NULL คั่นด้วย โดยมีอักขระ NULL พิเศษหลังชื่อแฟ้มล่าสุด สำหรับกล่องโต้ตอบลักษณะเดิม สายอักขระมีช่องว่างคั่น และฟังก์ชันใช้ชื่อแฟ้มแบบสั้นสำหรับชื่อแฟ้มด้วยช่องว่าง คุณสามารถใช้การ FindFirstFileฟังก์ชันการแปลงระหว่างชื่อแฟ้มที่ยาว และสั้น.

ถ้า บัฟเฟอร์มีขนาดเล็กเกินไป ฟังก์ชันจะส่งกลับค่า FALSE และการส่งกลับของฟังก์ชันCommDlgExtendedError FNERR_BUFFERTOOSMALL ในกรณีนี้ สองไบต์แรกของบัฟเฟอร์lpstrFileมีขนาดต้อง ไบต์หรืออักขระ.

nMaxFile
ระบุขนาด ไบต์ (รุ่น ANSI) หรืออักขระ 16 บิต (รุ่น Unicode), บัฟเฟอร์ตัวชี้ไปตามlpstrFile ฟังก์ชันGetOpenFileNameและGetSaveFileNameส่งกลับค่า FALSE ถ้าบัฟเฟอร์มีขนาดเล็กเกินไปที่จะประกอบด้วยข้อมูลของแฟ้ม บัฟเฟอร์ที่ควรมีความยาวอักขระอย่างน้อย 256 ตัว.
lpstrFileTitle
ชี้การบัฟเฟอร์ที่ได้รับชื่อแฟ้มและส่วนขยาย (โดยไม่มีข้อมูลเส้นทาง) ของแฟ้มที่เลือก สมาชิกนี้สามารถเป็น NULL.
nMaxFileTitle
ระบุขนาด ไบต์ (รุ่น ANSI) หรืออักขระ 16 บิต (รุ่น Unicode), บัฟเฟอร์ตัวชี้ไปตามlpstrFileTitle สมาชิกนี้จะถูกละเว้นถ้าlpstrFileTitleเป็น NULL.
lpstrInitialDir
ชี้เป็นสายอักขระที่ระบุถึงไดเรกทอรีของแฟ้มเริ่มต้น.

Windows NT 5.0 และรุ่นใหม่ กว่า Windows 98 และรุ่นที่ใหม่กว่า:

ถ้าlpstrInitalDirเป็น NULL และไดเรกทอรีปัจจุบันประกอบด้วยแฟ้มใด ๆ ที่อยู่ในชนิดของตัวกรองที่ระบุ ไดเรกทอรีเริ่มต้นเป็นไดเรกทอรีปัจจุบัน.

ถ้าlpstrInitalDirเป็น NULL และไดเรกทอรีปัจจุบันไม่ประกอบด้วยแฟ้มใด ๆ ที่อยู่ในชนิดของตัวกรองที่ระบุ ไดเรกทอรีเริ่มต้นคือ ไดเรกทอรีของแฟ้มส่วนบุคคลของผู้ใช้ปัจจุบัน เมื่อต้องการระบุการไดเรกทอรีของแฟ้มส่วนบุคคลของผู้ใช้ปัจจุบันเป็นไดเรกทอรีเริ่มต้น ตั้งค่าlpstrInitialDirเป็นเส้นทางส่งกลับ โดยการเรียกการ SHGetSpecialFolderLocationฟังก์ชันกับค่าสถานะ CSIDL_PERSONAL.

เวอร์ชันก่อนหน้าของ Windows และ Windows NT:

ถ้าlpstrInitalDirเป็น NULL ไดเรกทอรีเริ่มต้นเป็นไดเรกทอรีปัจจุบัน.

lpstrTitle
ชี้ไปยังสตริการวางในแถบชื่อเรื่องของกล่องโต้ตอบ ถ้าสมาชิกนี้เป็น NULL ระบบใช้ชื่อเริ่มต้น (นั่นคือบันทึก เป็นหรือเปิด).
ค่าสถานะ
ชุดของค่าสถานะบิตคุณสามารถใช้กล่องโต้ตอบการเตรียมใช้งาน เมื่อกล่องโต้ตอบส่งกลับ กำหนดค่าสถานะเหล่านี้เพื่อบ่งชี้ถึงการป้อนข้อมูลของผู้ใช้ สมาชิกนี้สามารถเป็นการรวมกันของค่าสถานะต่อไปนี้:
ค่าสถานะ ความหมาย
OFN_ALLOWMULTISELECT
ระบุว่าแฟ้ม ชื่อรายการกล่องอนุญาตให้เลือกได้หลายรายการ ถ้าคุณยังตั้งค่าสถานะ OFN_EXPLORER กล่องโต้ตอบการใช้ส่วนติดต่อผู้ใช้แบบ Explorer มิฉะนั้น จะใช้ส่วนติดต่อผู้ใช้แบบ.

ถ้าผู้ใช้เลือกแฟ้มมากกว่าหนึ่งแฟ้มlpstrFileบัฟเฟอร์ส่งกลับเส้นทางไดเรกทอรีปัจจุบันตาม ด้วยชื่อแฟ้มของแฟ้มที่เลือก สมาชิกnFileOffsetคือออฟเซต ในไบต์หรืออักขระ ชื่อแฟ้มแรก และสมาชิกnFileExtensionไม่ได้ใช้ สำหรับกล่องโต้ตอบลักษณะ Explorer สายอักขระไดเรกทอรีและชื่อแฟ้มเป็น NULL คั่นด้วย โดยมีอักขระ NULL พิเศษหลังชื่อแฟ้มล่าสุด รูปแบบนี้ทำให้กล่องโต้ตอบแสดงลักษณะ Explorer เพื่อส่งกลับชื่อแฟ้มที่มีช่องว่าง สำหรับกล่องโต้ตอบลักษณะเดิม สายอักขระไดเรกทอรีและชื่อแฟ้มถูกคั่น ด้วยช่องว่าง และฟังก์ชันใช้ชื่อแฟ้มแบบสั้นสำหรับชื่อแฟ้มด้วยช่องว่าง คุณสามารถใช้การ FindFirstFileฟังก์ชันการแปลงระหว่างชื่อแฟ้มที่ยาว และสั้น.

ถ้าคุณระบุแม่แบบแบบกำหนดเองสำหรับกล่องโต้ตอบลักษณะเดิมมี คำจำกัดความของกล่องรายการชื่อแฟ้มต้องประกอบด้วยค่า LBS_EXTENDEDSEL.

OFN_CREATEPROMPT
หากผู้ใช้ระบุแฟ้มที่มีอยู่ ธงนี้ทำให้กล่องโต้ตอบจะพร้อมท์ผู้ใช้ให้สิทธิ์ในการสร้างแฟ้ม ถ้าผู้ใช้เลือกที่จะสร้างแฟ้ม กล่องโต้ตอบปิด และฟังก์ชันจะส่งกลับชื่อที่ระบุ มิฉะนั้น กล่องโต้ตอบจะยังคงเปิดอยู่ ถ้าคุณใช้การตั้งค่าสถานะนี้กับค่าสถานะ OFN_ALLOWMULTISELECT กล่องโต้ตอบการอนุญาตให้ผู้ใช้ระบุแฟ้มเดียวเท่านั้นที่ไม่มีอยู่.
OFN_ENABLEHOOK
เปิดใช้งานฟังก์ชันของ hook ระบุในสมาชิกlpfnHook.
OFN_ENABLESIZING
Windows NT 5.0, Windows 98:ทำให้กล่องโต้ตอบลักษณะ Explorer เพื่อปรับขนาดได้โดยใช้เมาส์หรือแป้นพิมพ์ โดยค่าเริ่มต้น กล่องโต้ตอบลักษณะ Explorerเปิดและบันทึก เป็นทำให้กล่องโต้ตอบการปรับขนาดได้คำนึงว่าตั้งค่าสถานะนี้ ธงนี้เป็นสิ่งจำเป็นเฉพาะเมื่อคุณมีขั้นตอนของ hook หรือแม่แบบที่กำหนดเอง กล่องโต้ตอบแบบไม่อนุญาตการปรับขนาด.
OFN_ENABLETEMPLATE
บ่งชี้ว่า สมาชิกlpTemplateNameที่ชี้ไปชื่อของทรัพยากรในโมดูลที่ระบุ โดยสมาชิกhInstanceแม่แบบโต้ตอบ.

หากถูกตั้งค่าสถานะ OFN_EXPLORER ระบบใช้แม่แบบที่ระบุเพื่อสร้างกล่องโต้ตอบที่เป็นลูกของ Explorer-ลักษณะเริ่มต้นกล่องโต้ตอบ หากถูกตั้งค่าสถานะ OFN_EXPLORER ระบบใช้แม่แบบเพื่อสร้างกล่องโต้ตอบลักษณะเดิมที่แทนกล่องโต้ตอบเริ่มต้น.

OFN_ENABLETEMPLATEHANDLE
บ่งชี้ว่า สมาชิกhInstanceที่ระบุข้อมูลบล็อกที่ประกอบด้วยแม่แบบกล่องโต้ตอบที่มากมายใส่ไว้ ระบบละเว้นการlpTemplateNameถ้ามีระบุค่าสถานะนี้.

หากถูกตั้งค่าสถานะ OFN_EXPLORER ระบบใช้แม่แบบที่ระบุเพื่อสร้างกล่องโต้ตอบที่เป็นลูกของ Explorer-ลักษณะเริ่มต้นกล่องโต้ตอบ หากถูกตั้งค่าสถานะ OFN_EXPLORER ระบบใช้แม่แบบเพื่อสร้างกล่องโต้ตอบลักษณะเดิมที่แทนกล่องโต้ตอบเริ่มต้น.

OFN_EXPLORER
บ่งชี้ว่า การกำหนดเองใด ๆ ที่ทำกับกล่องโต้ตอบเปิดหรือบันทึก เป็นใช้วิธีปรับแต่ง Explorer แบบใหม่ ดูข้อมูลเพิ่มเติมขั้นตอนของ Hook Explorer แบบและแม่แบบของ Explorer แบบกำหนดเอง.

โดยค่าเริ่มต้น กล่องโต้ตอบเปิดและบันทึก เป็นใช้อินเทอร์เฟซสำหรับผู้ใช้ Explorer แบบคำนึงถึงว่าถูกตั้งค่าสถานะนี้ ธงนี้เป็นสิ่งจำเป็นเฉพาะเมื่อคุณมีขั้นตอนของ hook หรือแม่แบบที่กำหนดเอง หรือตั้งค่าสถานะ OFN_ALLOWMULTISELECT.

ถ้าคุณต้องการให้ส่วนติดต่อผู้ใช้แบบ ละเว้นค่าสถานะ OFN_EXPLORER และเป็นแม่แบบในแบบแทน หรือเกี่ยวกระบวนงาน ถ้าคุณต้องการลักษณะเก่า แต่ไม่ต้องการแม่แบบกำหนดเอง หรือตะขอกระบวนงาน เพียงแค่ให้เป็นขั้นตอนของ hook ที่ส่งกลับ FALSE เสมอ.

OFN_EXTENSIONDIFFERENT
ระบุว่า ผู้ใช้พิมพ์มีส่วนขยายชื่อแฟ้มที่แตกต่างจากการขยายที่ระบุโดยlpstrDefExt ฟังก์ชันไม่ได้ใช้ธงชาตินี้ถ้าlpstrDefExtเป็น NULL.
OFN_FILEMUSTEXIST
ระบุว่า ผู้ใช้สามารถพิมพ์ชื่อเฉพาะของแฟ้มที่มีอยู่ในแฟ้ม ชื่อรายการเขตข้อมูล ถ้ามีระบุค่าสถานะนี้ และผู้ใช้ป้อนชื่อไม่ถูกต้อง ขั้นตอนในกล่องโต้ตอบแสดงคำเตือนในกล่องข้อความ ถ้ามีระบุค่าสถานะนี้ ยังใช้ค่าสถานะ OFN_PATHMUSTEXIST.
OFN_HIDEREADONLY
อ่านเฉพาะกล่องกาเครื่องหมายซ่อน .
OFN_LONGNAMES
สำหรับกล่องโต้ตอบลักษณะเดิม ธงนี้ทำให้กล่องโต้ตอบการใช้ชื่อแฟ้มที่ยาวนาน ถ้าไม่มีระบุค่าสถานะนี้ หรือ หากยังมีตั้งค่าสถานะ OFN_ALLOWMULTISELECT กล่องโต้ตอบลักษณะเดิมใช้ชื่อแฟ้มแบบสั้น (รูปที่ 8.3) สำหรับชื่อแฟ้มด้วยช่องว่าง.

กล่องโต้ตอบลักษณะ explorer ละเว้นการตั้งค่าสถานะนี้ และแสดงชื่อแฟ้มที่ยาวตลอดเวลา.

OFN_NOCHANGEDIR
คืนค่าไดเรกทอรีปัจจุบันไปเป็นค่าเดิมถ้าผู้ใช้เปลี่ยนไดเรกทอรีในขณะที่กำลังค้นหาแฟ้ม.
OFN_NODEREFERENCELINKS
นำกล่องโต้ตอบเพื่อกลับเส้นทางและชื่อแฟ้มของทางลัดที่เลือก (แฟ้ม LNK) ถ้าค่านี้ไม่ได้ถูกกำหนด ส่งกล่องโต้ตอบกลับเส้นทางและชื่อแฟ้มของแฟ้มถูกอ้างอิงโดยทางลัด
OFN_NOLONGNAMES
สำหรับกล่องโต้ตอบลักษณะเดิม ธงนี้ทำให้กล่องโต้ตอบการใช้ชื่อแฟ้มแบบสั้น (รูปที่ 8.3).

กล่องโต้ตอบลักษณะ explorer ละเว้นการตั้งค่าสถานะนี้ และแสดงชื่อแฟ้มที่ยาวตลอดเวลา.

OFN_NONETWORKBUTTON
ซ่อน และปิดใช้งานปุ่ม'เครือข่าย'.
OFN_NOREADONLYRETURN
ระบุว่า แฟ้มส่งกลับไม่ได้อ่าน เฉพาะกล่องกาเครื่องหมายตรวจสอบ และไม่ได้อยู่ในไดเรกทอรีที่ป้องกันการเขียน.
OFN_NOTESTFILECREATE
ระบุว่า แฟ้มนั้นไม่สามารถสร้างก่อนปิดกล่องโต้ตอบ ธงนี้ควรจะระบุถ้า โปรแกรมประยุกต์ที่จะบันทึกแฟ้มที่อยู่บนเครือข่ายร่วมกันของการสร้าง-nonmodify เมื่อโปรแกรมประยุกต์ระบุค่าสถานะนี้ ในไลบรารีไม่ได้ตรวจสอบสำหรับการป้องกันการเขียน ดิสก์เต็ม ประตูเปิดไดรฟ์ หรือป้องกันเครือข่าย โปรแกรมประยุกต์ที่ใช้ธงชาตินี้ต้องทำการดำเนินการของแฟ้มอย่างรอบคอบ เนื่องจากไม่สามารถเปิดแฟ้มใหม่เมื่อปิด.
OFN_NOVALIDATE
ระบุว่า กล่องโต้ตอบทั่วไปทำให้อักขระที่ไม่ถูกต้องในชื่อแฟ้มถูกส่งกลับ โดยทั่วไป โปรแกรมประยุกต์ที่เรียกใช้ในขั้นตอนของ hook ตรวจสอบชื่อแฟ้ม โดยใช้ข้อความ FILEOKSTRING ถ้ากล่องข้อความในตัวควบคุมการแก้ไขว่างเปล่า หรือประกอบด้วยแต่ช่องว่าง รายการของไฟล์และไดเรกทอรีถูกปรับปรุง ถ้ากล่องข้อความในตัวควบคุมการแก้ไขประกอบด้วยอะไรnFileOffsetและnFileExtensionถูกตั้งค่าให้เป็นค่าที่สร้างขึ้น โดยการแยกวิเคราะห์ข้อความ และไม่มีส่วนขยายเริ่มต้นจะถูกเพิ่มลงในข้อความ ไม่ถูกคัดลอกข้อความมาการบัฟเฟอร์ที่ระบุโดยlpstrFileTitle.
ถ้าค่าที่ระบุโดยnFileOffsetจะน้อย กว่าศูนย์ ชื่อแฟ้มไม่ถูกต้อง มิฉะนั้น ชื่อแฟ้มถูกต้อง และnFileExtensionและnFileOffsetสามารถใช้ว่าไม่ได้ระบุค่าสถานะ OFN_NOVALIDATE มี.
OFN_OVERWRITEPROMPT
ทำให้เกิดเป็นกล่องโต้ตอบบันทึกเพื่อสร้างกล่องข้อความถ้าแฟ้มที่เลือกมีอยู่แล้ว ผู้ใช้ต้องยืนยันว่า จะเขียนทับแฟ้ม .
OFN_PATHMUSTEXIST
ระบุว่า ผู้ใช้สามารถพิมพ์เฉพาะชื่อแฟ้มและเส้นทางที่ถูกต้อง ถ้ามีใช้ธงนี้ และผู้ใช้ชนิดที่มีเส้นทางที่ไม่ถูกต้องและชื่อแฟ้มในรายการเขตข้อมูลชื่อแฟ้มฟังก์ชันในกล่องโต้ตอบแสดงคำเตือนในกล่องข้อความ .
OFN_READONLY
ทำให้อ่าน เฉพาะกล่องกาเครื่องหมายที่จะตรวจสอบเริ่มต้นเมื่อสร้างกล่องโต้ตอบกัน ธงนี้บ่งชี้สถานะของอ่าน เฉพาะกล่องกาเครื่องหมายเมื่อปิดกล่องโต้ตอบ.
OFN_SHAREAWARE
ระบุว่า ถ้าเรียกไปยัง OpenFileฟังก์ชันล้มเหลวเนื่องจากการละเมิดการใช้ร่วมเครือข่าย ข้อผิดพลาดถูกละเว้น และกล่องโต้ตอบการส่งกลับชื่อแฟ้มที่เลือก.

ถ้าไม่มีการตั้งค่าสถานะนี้ กล่องโต้ตอบการแจ้งให้ทราบของขั้นตอนของ hook เมื่อเครือข่ายที่ใช้ร่วมกันการละเมิดเกิดขึ้นสำหรับชื่อแฟ้มที่ระบุ โดยผู้ใช้ ถ้าคุณตั้งค่าสถานะ OFN_EXPLORER กล่องโต้ตอบส่งข้อความCDN_SHAREVIOLATIONกับขั้นตอนของ hook ถ้าคุณไม่ได้ตั้งค่า OFN_EXPLORER กล่องโต้ตอบส่งข้อความSHAREVISTRINGลงทะเบียนไปขั้นตอนของ hook.

OFN_SHOWHELP
ทำให้กล่องโต้ตอบจะแสดงปุ่มที่ช่วยกัน สมาชิกhwndOwnerต้องระบุหน้าต่างไปHELPMSGSTRINGได้รับข้อความที่กล่องโต้ตอบการส่งเมื่อผู้ใช้คลิกที่ปุ่มวิธีใช้ที่ลงทะเบียน.

กล่องโต้ตอบการ Explorer-ลักษณะส่งข้อความแจ้งเตือนCDN_HELPไปของขั้นตอนของ hook เมื่อผู้ใช้คลิกที่ปุ่ม'วิธีใช้'.


nFileOffset
ระบุออฟเซต zero-based ในไบต์ (รุ่น ANSI) หรืออักขระ 16 บิต (รุ่น Unicode), จากจุดเริ่มต้นของเส้นทางไปยังชื่อแฟ้มในสายอักขระที่ชี้ไปตามlpstrFile ตัวอย่างเช่น ถ้าlpstrFileชี้กับสายอักขระต่อไปนี้ "c:\dir1\dir2\file.ext" สมาชิกนี้ประกอบด้วยมูลค่า 13 เพื่อบ่งชี้ออฟเซตของสายอักขระ "file.ext".

ถ้าผู้ใช้เลือกแฟ้มมากกว่าหนึ่งแฟ้มnFileOffsetคือออฟเซตไปชื่อแฟ้มแรก.

nFileExtension
ระบุออฟเซต zero-based ในไบต์ (รุ่น ANSI) หรืออักขระ 16 บิต (รุ่น Unicode), จากจุดเริ่มต้นของเส้นทางไปส่วนขยายชื่อแฟ้มในสตริงที่ชี้ไปตามlpstrFile ตัวอย่างเช่น ถ้าlpstrFileชี้กับสายอักขระต่อไปนี้ "c:\dir1\dir2\file.ext" สมาชิกนี้ประกอบด้วยค่า 18 ถ้าผู้ใช้ไม่ได้พิมพ์นามสกุล และlpstrDefExtเป็น NULL สมาชิกนี้ระบุการชดเชยกับอักขระ null terminating ถ้าผู้ใช้พิมพ์ "" เป็นอักขระตัวสุดท้ายในชื่อแฟ้ม สมาชิกนี้ระบุเป็นศูนย์.
lpstrDefExt
จุดการบัฟเฟอร์ที่ประกอบด้วยส่วนขยายเริ่มต้น GetOpenFileNameและGetSaveFileNameผนวกส่วนขยายนี้ไปยังชื่อแฟ้มถ้าผู้ใช้ไม่สามารถพิมพ์นามสกุล สายนี้สามารถมีความยาว แต่เพียง 3 ตัวแรกจะถูกผนวกเข้า สตริงที่ไม่ควรประกอบด้วยจุด (.) ถ้าสมาชิกนี้เป็นค่า NULL และผู้ใช้ล้มเหลวให้พิมพ์นามสกุล ไม่มีนามสกุลต่อท้าย.
lCustData
ระบุข้อมูลที่โปรแกรมประยุกต์ที่กำหนดเองที่ระบบส่งผ่านไปยังขั้นตอนของ hook ที่ระบุ โดยสมาชิกlpfnHook เมื่อระบบส่งข้อความWM_INITDIALOGไปขั้นตอนของ hook พารามิเตอร์lParamของข้อความเป็นตัวชี้ไปยังโครงสร้างOPENFILENAMEระบุเมื่อสร้างกล่องโต้ตอบ ขั้นตอนของ hook สามารถใช้การตั้งค่านี้ชี้เพื่อรับค่าlCustData.
lpfnHook
ชี้ไปยังขั้นตอนของ hook สมาชิกนี้จะถูกละเว้นถ้าสมาชิกค่าสถานะมีค่าสถานะ OFN_ENABLEHOOK.

ถ้าไม่ตั้งค่าสถานะ OFN_EXPLORER ถูกตั้งค่าในสถานะสมาชิกlpfnHookเป็นตัวชี้ไปยังขั้นตอนของ hook OFNHookProcOldStyleที่ได้รับข้อความสำหรับกล่องโต้ตอบ ขั้นตอนของ hook ส่งกลับค่า FALSE เพื่อส่งต่อข้อความ ลงในกระบวนงานเริ่มต้นกล่องโต้ตอบ หรือ TRUE ไปทิ้งข้อความ.

ถ้าตั้งค่า OFN_EXPLORER, lpfnHookเป็นตัวชี้ไปยังขั้นตอนของ hook OFNHookProc ขั้นตอนของ hook ได้รับข้อความแจ้งเตือนที่ส่งจากกล่องโต้ตอบ นอกจากนี้ขั้นตอนของ hook ยังได้รับข้อความสำหรับตัวควบคุมเพิ่มเติมใด ๆ ที่คุณได้กำหนดไว้ โดยการระบุต้นแบบการโต้ตอบเด็ก ขั้นตอนของ hook ไม่ได้รับข้อความสำหรับตัวควบคุมมาตรฐานของกล่องโต้ตอบเริ่มต้น.

lpTemplateName
ตัวชี้เป็นสตริงที่สิ้นสุดด้วยค่า null ที่ชื่อทรัพยากรแม่แบบโต้ตอบในโมดูลที่ระบุ โดยhInstanceสมาชิก สำหรับแหล่งข้อมูลของกล่องโต้ตอบหมายเลข นี้สามารถเป็นค่าส่งกลับ โดยแมโคMAKEINTRESOURCE สมาชิกนี้จะถูกละเว้นเว้นแต่ค่าสถานะ OFN_ENABLETEMPLATE ถูกตั้งค่าในสถานะสมาชิก.

หากถูกตั้งค่าสถานะ OFN_EXPLORER ระบบใช้แม่แบบที่ระบุเพื่อสร้างกล่องโต้ตอบที่เป็นลูกของ Explorer-ลักษณะเริ่มต้นกล่องโต้ตอบ หากถูกตั้งค่าสถานะ OFN_EXPLORER ระบบใช้แม่แบบเพื่อสร้างกล่องโต้ตอบลักษณะเดิมที่แทนกล่องโต้ตอบเริ่มต้น.

QuickInfo

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

ดูเพิ่มเติม

ภาพรวมไลบรารีของกล่องโต้ตอบทั่วไปโครงสร้างกล่องโต้ตอบทั่วไป GetOpenFileName, GetSaveFileName, SHGetSpecialFolderLocation

Index