การกำหนดเองการค้นหาหรือกล่องโต้ตอบการแทน

กล่องโต้ตอบการค้นหาหรือแทนการกำหนดเอง คุณสามารถใช้หนึ่งในวิธีการต่อไป:

เมื่อคุณสร้างกล่องโต้ตอบการค้นหาหรือแทนคุณสามารถตั้งค่าสถานะในสถานะสมาชิกของโครงสร้างFINDREPLACEซ่อน หรือปิดใช้งานตัวควบคุมตัวเลือกการค้นหาใด ๆ ตัวอย่างเช่น คุณสามารถกำหนดค่าสถานะ FR_NOMATCHCASE ปิดกล่องกาเครื่องหมายตรงตัวพิมพ์หรือตั้งค่าสถานะ FR_HIDEMATCHCASE เพื่อซ่อน.

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

    เมื่อต้องการให้แม่แบบกำหนดเองสำหรับกล่องโต้ตอบการค้นหาหรือแทน
  1. สร้างแม่แบบกำหนดเอง โดยการปรับเปลี่ยนแม่แบบเริ่มต้นที่ระบุไว้ในการ FINDTEXTกล่องโต้ตอบแฟ้ม ตัวบ่งชี้ที่ตัวควบคุมที่ใช้ในการเริ่มต้นการค้นหาหรือแทนต้นแบบการโต้ตอบถูกกำหนดในการ DLGSแฟ้ม H.
  2. ใช้โครงสร้างFINDREPLACEเพื่อเปิดใช้งานแม่แบบดังนี้:

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

    เมื่อต้องการเปิดการใช้งานในขั้นตอนของ hook สำหรับกล่องโต้ตอบการค้นหาหรือแทน
  1. ตั้งค่าสถานะ FR_ENABLEHOOK ในสถานะสมาชิกของโครงสร้างFINDREPLACE.
  2. ระบุอยู่ของขั้นตอนของ hook ในสมาชิกlpfnHook.

หลังจากการประมวลผลข้อความของWM_INITDIALOGขั้นตอนในกล่องโต้ตอบส่งข้อความ WM_INITDIALOG ไปในขั้นตอนของ hook พารามิเตอร์lParamของข้อความนี้เป็นตัวชี้การใช้กล่องโต้ตอบการเตรียมใช้งานโครงสร้างFINDREPLACE.

ถ้าขั้นตอนของ hook ส่งกลับ FALSE ในการตอบสนองต่อข้อความ WM_INITDIALOG กล่องโต้ตอบจะไม่ถูกแสดงเว้นแต่ว่าในขั้นตอนของ hook แสดง การทำเช่นนี้ ก่อน ดำเนินการโปรแกรมระบายสีอื่นใด และจึง เรียกShowWindowและ UpdateWindowฟังก์ชัน รหัสต่อไปนี้แสดงตัวอย่าง

/ / เราได้ส่งกลับ FALSE ในการตอบสนองต่อ WM_INITDIALOG 
/ / เราได้ทำการดำเนินการโปรแกรมระบายสีอื่น 
/ / Now เราแสดงกล่องโต้ตอบ 
ShowWindow (hDlg, SW_SHOWNORMAL); 
UpdateWindow(hDlg) 

 

Index