首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

SDK中怎么设置菜单标记,使用代码动态设置

2012-01-20 
SDK中如何设置菜单标记,使用代码动态设置.大概知道是使用CheckMenuItem函数的, 跟MFC有点区别,会MFC,但是S

SDK中如何设置菜单标记,使用代码动态设置.
大概知道是使用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); 
CheckMenuItem(hCtrlBlock,ID_32777, MF_CHECKED); 
把MF_BYCOMMAND 去掉,编译运行,点击ID_32777就会加上个标记了.

[解决办法]
呵呵,是我舍近求远了。调GetMenuState就可以了。
[解决办法]
MENUITEMINFO mi;

memset(&mi,0,sizeof(MENUITEMINFO));
mi.cbSize = sizeof(MENUITEMINFO);
mi.fMask = MIIM_STATE;

if(GetMenuItemInfo(hMenu,idCmd,FALSE,&mi))
return (mi.fState & MF_CHECKED)?MF_CHECKED:MF_UNCHECKED;

热点排行