ตัวควบคุมแบบกำหนดเอง

โปรแกรมประยุกต์ที่สามารถสร้างตัวควบคุมที่กำหนดเองทำงานที่ไม่ได้รับการสนับสนุน โดยตัวควบคุมที่กำหนดไว้ล่วงหน้า API Win32 แสดงวิธีการต่อไปนี้จะสร้างตัวควบคุมแบบกำหนดเอง:

ใช้วาดเจ้าของตัวควบคุม

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

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

Subclassing หน้าต่างคลาสของตัวควบคุมที่มีอยู่

Subclassing ตัวควบคุมที่มีอยู่เป็นอีกวิธีหนึ่งในการสร้างตัวควบคุมแบบกำหนดเอง ขั้นตอนระดับชั้นย่อยสามารถเปลี่ยนแปลงพฤติกรรมของตัวควบคุมที่เลือก ด้วยการประมวลผลข้อความเหล่านั้นที่มีผลต่อลักษณะการทำงานที่เลือก ข้อความอื่น ๆ ทั้งหมดที่ส่งผ่านไปยังกระบวนงานหน้าต่างต้นฉบับสำหรับตัวควบคุม ตัวอย่าง แอปพลิเคชันสามารถแสดงเป็นรูปบิตแมปขนาดเล็กอยู่ติดกับข้อความในตัวควบคุมการแก้ไขแบบอ่านอย่างเดียว แบบ บรรทัดเดียว โดย subclassing การควบคุม และการประมวลผล WM_PAINTข้อความได้ ดูข้อมูลเพิ่มเติมSubclassing กระบวนงานของหน้าต่าง.

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

การใช้คลาสหน้าต่างการกำหนดโปรแกรมประยุกต์

กระบวนการในการลงทะเบียนคลาสหน้าต่างโปรแกรมประยุกต์ที่กำหนดเองสำหรับตัวควบคุมแบบกำหนดเองเหมือนกับการลงทะเบียนคลาสสำหรับหน้าต่างธรรมดาได้ เมื่อต้องการสร้างตัวควบคุมแบบกำหนดเอง การระบุชื่อของหน้าต่างชั้น ในฟังก์ชันCreateWindowExหรือ ในกล่องโต้ตอบแม่แบบ แต่ละชั้นต้องมีชื่อที่ไม่ซ้ำ หน้าต่างกระบวนงานที่สอดคล้องกัน และข้อมูลอื่น ๆ.

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

Index