大概知道是使用CheckMenuItem函数的, 跟MFC有点区别,会MFC,但是SDK中不会用,如:
hCtrlBlock = GetMenu(hWnd);
GetSubMenu(hCtrlBlock,1);
CheckMenuItem(hCtrlBlock,ID_32777,MF_BYCOMMAND || MF_CHECKED);MFC里边是通过指向GetMenu->GetSubMenu->CheckMenuItem来完成的;
虽然能在菜单属性里边设置为真,但是只是显示有标记, 再次点击不会消失;
但是这不是我想要的, 我是想动态的控制整个标记.CheckMenuItem怎么用呢? 点击显示,再次点击消失,
我想应该是在ID_32777这个ID响应里边设置吧, 判断返回值,either MF_CHECKED or MF_UNCHECKED;
hCtrlBlock = GetMenu(hWnd);
GetSubMenu(hCtrlBlock,1);
CheckMenuItem(hCtrlBlock,ID_32777,MF_BYCOMMAND || MF_CHECKED);MFC里边是通过指向GetMenu->GetSubMenu->CheckMenuItem来完成的;
虽然能在菜单属性里边设置为真,但是只是显示有标记, 再次点击不会消失;
但是这不是我想要的, 我是想动态的控制整个标记.CheckMenuItem怎么用呢? 点击显示,再次点击消失,
我想应该是在ID_32777这个ID响应里边设置吧, 判断返回值,either MF_CHECKED or MF_UNCHECKED;
CheckMenuItem(hCtrlBlock,ID_32777, MF_CHECKED);
把MF_BYCOMMAND 去掉,编译运行,点击ID_32777就会加上个标记了.
BOOL GetMenuItemInfo(
HMENU hMenu,
UINT uItem,
BOOL fByPosition,
LPMENUITEMINFO lpmii
);GetMenuItemInfo(hCtrlBlock,ID_32777,FALSE, );
第4个需要对结构MENUITEMINFO 怎么设置?
怎么才能返回到是是否有复选标记.
mi.cbSize = sizeof(MENUITEMINFO);
mi.fMask = MIIM_STATE; if(GetMenuItemInfo(hMenu,idCmd,FALSE,&mi))
return (mi.fState & MF_CHECKED)?MF_CHECKED:MF_UNCHECKED;