这就是InsertMenuItem()文档所说的:
uItem [in]
Type: UINT
The identifier or position of the menu item before which to insert the new item. The meaning of this parameter depends on the value of fByPosition.
但那么MENUITEMINFO.wID的目的是什么?
wID
Type: UINT
An application-defined value that identifies the menu item. Set fMask to MIIM_ID to use wID.
请注意,我测试了两个参数,只有wID有效!
答案 0 :(得分:1)
但那么MENUITEMINFO.wID的目的是什么?
uItem
控制插入新菜单项的位置。 wID
控制新菜单项的 ID 。
假设您有一个包含3个项目的菜单,标识为IDM_FOO
,IDM_BAR
和IDM_BAZ
。现在假设您要在IDM_QUUX
和IDM_FOO
项目之间的菜单中插入标识为IDM_BAR
的第4项。您可以使用InsertMenuItem()
在IDM_BAR
之前(使用fByPosition == FALSE
)或在索引1之前(使用fByPosition == TRUE
)插入它。例如:
MENUITEMINFO mii;
ZeroMemory(&mii, sizeof(mii));
mii.cbSize = sizeof(mii);
mii.fMask = MIIM_ID | /* Other flags */;
mii.wID = IDM_QUUX; // ID of new menu item to be inserted
// Fill out other fields
...
// Insert new menu item before the IDM_BAR item
InsertMenuItem(hMenuParent, IDM_BAR, FALSE, &mii);
...
// OR, insert new menu item before position 1
InsertMenuItem(hMenuParent, 1, TRUE, &mii);
至于这个评论:
请注意,我测试了两个参数,只有wID有效!
你必须澄清你的意思"只有wID有效。"工作怎么样?你究竟做了什么,发生了什么,你期望发生什么?请务必仔细阅读文档,以了解功能和结构的工作原理。