การตั้งค่าดึงเจ้าของค่าสถานะ

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

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

เมื่อเรียกฟังก์ชันเหล่านี้ที่สอง คุณต้องระบุที่อยู่ของโครงสร้างแบบMENUITEMINFOการนำคุณสมบัติของรายการเมนูใหม่หรือคุณสมบัติคุณต้องการเปลี่ยนสำหรับรายการเมนูที่มีอยู่ ทำให้สินค้า มีเจ้าของวาดสินค้า ระบุค่า MIIM_TYPE สำหรับสมาชิกfMaskและค่า MFT_OWNERDRAW สำหรับสมาชิกfType.

โดยการตั้งค่าสมาชิกเหมาะสมของโครงสร้างMENUITEMINFOคุณสามารถเชื่อมโยงจากโปรแกรมประยุกต์กำหนดค่า ซึ่งถูกเรียกว่าข้อมูลสินค้าแต่ละรายการเมนู เมื่อต้องการทำเช่นนั้น ระบุค่า MIIM_DATA สำหรับสมาชิกfMaskและโปรแกรมประยุกต์กำหนดค่าสำหรับสมาชิกdwItemData.

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

โปรแกรมประยุกต์ที่เขียนขึ้นสำหรับระบบรุ่นก่อนหน้านี้สามารถดำเนินต่อการโทรAppendMenu, InsertMenuหรือModifyMenuเพื่อกำหนดค่าสถานะ MF_OWNERDRAW ให้กับรายการเมนูวาดเจ้า.

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

Index