I've tried giving an ID to a menu popup in my resource file, but it never seems to work. I'm trying to come up with a way to automate something I do repeatedly with different parts of the menu. I'll post some source below with a comment as to what I'm wanting to accomplish.
p.s. Why can't you use control styles like LVS_EX_GRIDLINES in the damn resource file instead of having to SendMessage LVM_SETEXTENDEDLISTVIEWSTYLE them?
//This is a piece of the menu as an example...
POPUP "Input Type"
MENUITEM "Load Search",MNU_CS_LOAD_SEARCH
MENUITEM "Undo Last Search",MNU_CS_UNDO
//then within the message loop at WM_COMMAND
//Notice how I have to uncheck them all a line at a time. If I could grab the popup,
//I should be able to call a little function to loop and uncheck them for less clutter in my source.
case MNU_CS_INPUT_HEX: case MNU_CS_INPUT_DEC: case MNU_CS_INPUT_FLOAT:
Settings.CS.NumBase = GetMenuItemData(hMenu, LOWORD(wParam));
Settings.CS.NumBaseId = LOWORD(wParam);
SetMenuState(hMenu, MNU_CS_INPUT_HEX, MFS_UNCHECKED);
SetMenuState(hMenu, MNU_CS_INPUT_DEC, MFS_UNCHECKED);
SetMenuState(hMenu, MNU_CS_INPUT_FLOAT, MFS_UNCHECKED);
SetMenuState(hMenu, LOWORD(wParam), MFS_CHECKED);
//SetMenuState does exactly what it sounds like. It's a wrapper for the standard SetMenuInfo function
//I didn't want to spend 5 lines doing that all the time either.
int SetMenuState(HMENU hMenu, UINT id, UINT state)
MENUITEMINFO mnuItem; memset(&mnuItem,0,sizeof(mnuItem));
mnuItem.cbSize = sizeof(MENUITEMINFO);
mnuItem.fMask = MIIM_STATE;
mnuItem.fState = state;
return SetMenuItemInfo(hMenu, id, FALSE, &mnuItem);