ขั้นตอนของ Hook explorer-ลักษณะ

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

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

ขั้นตอนของ hook Explorer-ลักษณะการรับต่าง ๆ ของข้อความในขณะที่กล่องโต้ตอบที่เปิดอยู่ เหล่านี้มีดังนี้:

นอกจากนี้ มีชุดของข้อความที่คุณสามารถส่งไปยังกล่องโต้ตอบมีลักษณะ Explorer เพื่อรับข้อมูล หรือ เพื่อควบคุมลักษณะการทำงานและลักษณะที่ปรากฏของกล่องโต้ตอบ.

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

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

พารามิเตอร์lParamสำหรับแต่ละข้อความ WM_NOTIFY ตัวชี้การโครงสร้างOFNOTIFYซึ่งกำหนดแอคชันได้ รหัสสมาชิกในหัวข้อสำหรับโครงสร้างของOFNOTIFYประกอบด้วยหนึ่งในรหัสการแจ้งเตือนต่อไปนี้.

CDN_FILEOK ผู้ใช้คลิกปุ่มOK กล่องโต้ตอบจะปิด.
CDN_FOLDERCHANGE ผู้ใช้เปิดโฟลเดอร์ใหม่หรือไดเรกทอรี.
CDN_HELP ผู้ใช้คลิกปุ่มวิธีใช้.
CDN_INITDONE ระบบเสร็จเริ่มต้นกล่องโต้ตอบการ และกล่องโต้ตอบได้เสร็จสิ้นการประมวลผลข้อความWM_INITDIALOG ยัง ระบบได้เสร็จสิ้นการจัดเรียงตัวควบคุมในกล่องโต้ตอบทั่วไปเพื่อให้มีที่ว่างสำหรับตัวควบคุมของกล่องโต้ตอบเด็ก (ถ้ามี).
CDN_SELCHANGE ผู้ใช้เลือกแฟ้มใหม่หรือโฟลเดอร์จากรายการแฟ้ม.
CDN_SHAREVIOLATION กล่องโต้ตอบทั่วไปพบการละเมิดการใช้ร่วมกับแฟ้มจะถูกส่งกลับ.
CDN_TYPECHANGE ผู้ใช้เลือกชนิดแฟ้มใหม่จากรายการชนิดของแฟ้ม.

ข้อความเหล่านี้ WM_NOTIFY มีผลแทนFILEOKSTRING, LBSELCHSTRING, SHAREVISTRINGและHELPMSGSTRINGการลงทะเบียนข้อความใช้กล่องโต้ตอบเปิดและบันทึกเป็นรุ่นก่อนหน้า อย่างไรก็ตาม ในขั้นตอนของ hook ยังรับความ superseded หลังจากข้อความ WM_NOTIFY ถ้าการประมวลผล WM_NOTIFY ไม่ใช้SetWindowLongเพื่อตั้งค่า DWL_MSGRESULT ไม่ใช่ศูนย์.

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

CDM_GETFILEPATH ดึงเส้นทางและชื่อแฟ้มของแฟ้มที่เลือก.
CDM_GETFOLDERIDLIST ดึงรายการรหัสรายการที่ตรงกันกับโฟลเดอร์ปัจจุบันว่า กล่องโต้ตอบได้เปิด ดูข้อมูลเพิ่มเติมเกี่ยวกับรายการรหัสสินค้า ตัวระบุสินค้าและตัวระบุรายการ.
CDM_GETFOLDERPATH ดึงเส้นทางของโฟลเดอร์ปัจจุบันหรือไดเรกทอรีสำหรับกล่องโต้ตอบ.
CDM_GETSPEC ดึงชื่อแฟ้ม (ไม่รวมเส้นทาง) ของแฟ้มที่เลือกอยู่ในขณะนี้ในกล่องโต้ตอบ.
CDM_HIDECONTROL ซ่อนตัวควบคุมที่ระบุ.
CDM_SETCONTROLTEXT การตั้งค่าข้อความในตัวควบคุมที่ระบุ.
CDM_SETDEFEXT ส่วนขยายชื่อแฟ้มเริ่มต้นสำหรับกล่องโต้ตอบการตั้งค่า.

Index