BOOL ModifyMenu ( UINT nPosition, UINT nFlags, UINT nIDNewItem = 0, LPCTSTR lpszNewItem = NULL );
BOOL ModifyMenu ( UINT nPosition, UINT nFlags, UINT nIDNewItem, const CBitmap * pBmp );
ส่งกลับค่า
ไม่ใช่ศูนย์ถ้าฟังก์ชันนี้จะสำเร็จ 0 อื่น?
พารามิเตอร์
nPosition
ระบุรายการเมนูเปลี่ยนแปลง สามารถใช้พารามิเตอร์nFlagsตีnPositionด้วยวิธีการดังต่อไปนี้:
| nFlags | การตีความเนื้อความของ nPosition |
| MF_BYCOMMAND | ระบุพารามิเตอร์ให้สั่ง ID ของรายการเมนูที่มีอยู่ นี่คือค่าเริ่มต้นถ้าทั้งMF_BYCOMMANDและMF_BYPOSITIONถูกตั้งค่า? |
| MF_BYPOSITION | ระบุพารามิเตอร์ให้ตำแหน่งของรายการเมนูที่มีอยู่ รายการแรกอยู่ที่ตำแหน่ง 0? |
nFlags
ระบุวิธีการตีความnPositionและให้ข้อมูลเกี่ยวกับการเปลี่ยนแปลงที่ทำกับรายการเมนู สำหรับรายการของค่าสถานะที่คุณอาจตั้งค่า ดูฟังก์ชันสมาชิกAppendMenu?
nIDNewItem
ระบุเป็นคำสั่ง ID ของรายการเมนูแก้ไข หรือnFlagsถูกตั้งค่าเป็นMF_POPUPการจัดการเมนู (HMENU) ของเมนูแบบผุดขึ้น พารามิเตอร์nIDNewItemถูกละเว้น (ไม่จำเป็น) ถ้าnFlagsถูกตั้งค่าเป็นMF_SEPARATOR?
lpszNewItem
ระบุเนื้อหาของรายการเมนูใหม่ สามารถใช้พารามิเตอร์nFlagsตีlpszNewItemด้วยวิธีการดังต่อไปนี้:
| nFlags | การตีความเนื้อความของ lpszNewItem |
| MF_OWNERDRAW | ประกอบด้วยค่า 32 บิตมาจากโปรแกรมประยุกต์ที่โปรแกรมประยุกต์ที่สามารถใช้เพื่อรักษาข้อมูลเพิ่มเติมที่เกี่ยวข้องกับรายการเมนู ค่า 32 บิตนี้จะพร้อมใช้งานสำหรับโปรแกรมประยุกต์เมื่อดำเนินกับMF_MEASUREITEMและMF_DRAWITEM? |
| MF_STRING | ประกอบด้วยตัวชี้ความยาวสตริสิ้นสุดด้วยค่า null หรือCString? |
| MF_SEPARATOR | พารามิเตอร์lpszNewItemจะถูกละเว้น (ไม่จำเป็น)? |
pBmp
จุดCBitmapวัตถุที่จะใช้เป็นรายการเมนู?
หมายเหตุ
เปลี่ยนรายการเมนูที่มีอยู่ที่ตำแหน่งที่ระบุโดยnPosition โปรแกรมประยุกต์ที่ระบุสถานะของรายการเมนูใหม่ โดยการกำหนดค่าในnFlags ถ้าฟังก์ชันนี้แทนที่เมนูผุดขึ้นเกี่ยวข้องกับรายการเมนู ขัดเมนูผุดขึ้นเก่า และทำให้หน่วยความจำที่ใช้ โดยเมนูแบบผุดขึ้น?
เมื่อnIDNewItemระบุเมนูแบบผุดขึ้น มันกลายเป็นส่วนหนึ่งของเมนูที่จะถูกแทรก ถ้าเมนูที่ถูกทำลาย เมนู'แทรก'จะยังถูกทำลาย เมนูแทรกจะถูกเอาออกจากวัตถุCMenuในการหลีกเลี่ยงความขัดแย้ง?
เมื่อใดก็ ตามเมนูที่อยู่ในหน้าต่างมีการเปลี่ยนแปลง (หรือไม่มีแสดงหน้าต่าง), แอพลิเคชันควรเรียกCWnd::DrawMenuBar เมื่อต้องการเปลี่ยนแอตทริบิวต์ของรายการเมนูที่มีอยู่แล้ว จะเร็วมากในการใช้ฟังก์ชันสมาชิกCheckMenuItemและEnableMenuItem?
ภาพรวม CMenu |nbsp สมาชิกของคลาส| แผนภูมิของลำดับชั้น(&N)
ดูเพิ่มเติมnbspCMenu::AppendMenu, CMenu::InsertMenu, CMenu::CheckMenuItem, CWnd::DrawMenuBar, CMenu::EnableMenuItem, CMenu::SetMenuItemBitmaps, CMenu::Detach, :: ModifyMenu(&N)