เปิดแฟ้ม

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

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

ตัวอย่างนี้ตั้งค่าสถานะ OFN_PATHMUSTEXIST และ OFN_FILEMUSTEXIST ในสถานะสมาชิก ค่าสถานะเหล่านี้ทำกล่องโต้ตอบการตรวจสอบ ก่อนที่จะกลับ ที่มีเส้นทางและชื่อแฟ้มที่ระบุ โดยผู้ใช้จริงอยู่.

ฟังก์ชันGetOpenFileNameจะส่งกลับ TRUE ถ้าผู้ใช้คลิกปุ่มOKและระบุเส้นทางและชื่อแฟ้มมีอยู่ ในกรณีนี้ บัฟเฟอร์ที่ชี้ไป โดยสมาชิกของlpstrFileประกอบด้วยเส้นทางและชื่อแฟ้ม ตัวอย่างรหัสใช้ข้อมูลนี้ในการเรียกไป CreateFileฟังก์ชันเพื่อเปิดแฟ้ม.

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

OPENFILENAME ofn       / / โครงสร้างกล่องโต้ตอบทั่วไป
char szFile [260];       / / บัฟเฟอร์สำหรับชื่อแฟ้ม
HWND hwnd              / / เจ้าของหน้าต่าง
หมายเลขอ้างอิง hf              / / แฟ้มหมายเลขอ้างอิง

/ / เตรียมใช้งาน OPENFILENAME
ZeroMemory (แอมป์ ofn, sizeof(OPENFILENAME))
ofn.lStructSize = sizeof(OPENFILENAME)
ofn.hwndOwner = hwnd
ofn.lpstrFile = szFile
ofn.nMaxFile = sizeof(szFile)
ofn.lpstrFilter = "All\0*.*\0Text\0*TXT\0 ";
ofn.nFilterIndex = 1
ofn.lpstrFileTitle = NULL
ofn.nMaxFileTitle = 0
ofn.lpstrInitialDir = NULL
ofnค่าสถานะ = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST

/ / แสดงกล่องโต้ตอบที่เปิดอยู่ 

ถ้า (GetOpenFileName(&ofn) == TRUE) hf = CreateFile (ofn.lpstrFile, GENERIC_READ
        0, NULL (LPSECURITY_ATTRIBUTES)
        OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL
        (จัดการ) ค่า NULL) 

Index