กล่องโต้ตอบสีที่กำหนดเอง

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

คุณสามารถปรับเปลี่ยนลักษณะปรากฏและลักษณะการทำงานของกล่องโต้ตอบสีโดยการตั้งค่าสถานะในสถานะสมาชิกของโครงสร้างCHOOSECOLOR ตัวอย่างเช่น คุณสามารถตั้งค่าการตั้งค่าสถานะ CC_SOLIDCOLOR เป็นทางตรงกล่องโต้ตอบเพื่อแสดงเฉพาะสีทึบ ทำให้กล่องโต้ตอบการเริ่มต้นด้วยเลือกสีอื่นที่ไม่ใช่สีดำ ตั้งค่าสถานะ CC_RGBINIT และระบุสีในสมาชิกrgbResult.

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

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

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

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

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

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