gpt4 book ai didi

c++ - 如何获取当前聚焦的菜单项ID?

转载 作者:太空宇宙 更新时间:2023-11-04 14:27:54 25 4
gpt4 key购买 nike

我想通过在状态栏上使用 SendMessage() 来在鼠标光标位于菜单中的项目上时显示信息。如何获取当前菜单项 ID?我想他们使用的 ID 与我的 Visual Studio 在菜单编辑器中显示的相同。

我在 msdn 上找到了这些,但似乎没有一个能满足我的需要:

WM_COMMAND
WM_CONTEXTMENU
WM_ENTERMENULOOP
WM_EXITMENULOOP
WM_GETTITLEBARINFOEX
WM_MENUCOMMAND
WM_MENUDRAG
WM_MENUGETOBJECT
WM_MENURBUTTONUP
WM_NEXTMENU
WM_UNINITMENUPOPUP

最佳答案

当用户在菜单中移动时,您会得到 WM_MENUSELECT消息。 LOWORD(lParam) 将是菜单项的 ID,除非当前选择的是弹出窗口而不是项目。

所以你的代码看起来像这样

case WM_MENUSELECT
{
HMENU hmenu = (HMENU) lParam;
UINT idItem = (UINT) LOWORD(wParam);
UINT flags = (UINT) HIWORD(wParam);

if (flags & MF_POPUP)
{
// idItem is actually a popup index
HMENU hSubMenu = GetSubMenu(hmenu, idItem);
idItem = 0; // assign an id to the menu, or just set to 0 for no output
}

// show menu info on status bar for idItem
SendMessage(hwndStatbar, ..., idItem, ...);
}

关于c++ - 如何获取当前聚焦的菜单项ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2299397/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com