为什么我用
pSubMenu->EnableMenuItem(IDM_PauseNetwork, MF_DISABLED | MF_GRAYED);
int a = pSubMenu->EnableMenuItem(IDM_PauseNetwork, MF_DISABLED | MF_GRAYED);他的返回值a竟然是0,当然该菜单也没有变灰~~我查了msdn,上面写着返回值只有这几种情况:Previous state (MF_DISABLED, MF_ENABLED, or MF_GRAYED) or –1 if not valid.都不知道为什么,我这里竟然出来个0!!!
pSubMenu->EnableMenuItem(IDM_PauseNetwork, MF_DISABLED | MF_GRAYED);
int a = pSubMenu->EnableMenuItem(IDM_PauseNetwork, MF_DISABLED | MF_GRAYED);他的返回值a竟然是0,当然该菜单也没有变灰~~我查了msdn,上面写着返回值只有这几种情况:Previous state (MF_DISABLED, MF_ENABLED, or MF_GRAYED) or –1 if not valid.都不知道为什么,我这里竟然出来个0!!!
MF_BYCOMMAND
MF_BYPOSITION
int a = pSubMenu->EnableMenuItem(IDM_PauseNetwork,MF_BYCOMMAND | MF_GRAYED);我改了之后,发现其返回值是MF_GRAYED,但是菜单还是没有被改成灰色.......
我在一个ID为IDM_PauseNetwork的按钮的点击响应函数里面写下如下代码:
但是我可以不断的单击它而且每一次单击之后都会有一个messagebox提示MF_DISABLED....pSubMenu->EnableMenuItem(IDM_PauseNetwork,MF_BYCOMMAND | MF_DISABLED);
int a = pSubMenu->EnableMenuItem(IDM_PauseNetwork,MF_BYCOMMAND | MF_DISABLED);
if(a == MF_GRAYED)
{
AfxMessageBox("MF_GRAYED");
}
else if(a == MF_DISABLED)
{
AfxMessageBox("MF_DISABLED");
}
else if(a == MF_ENABLED)
{
AfxMessageBox("MF_ENABLED");
}
else if(a == -1)
{
AfxMessageBox("-1");
}
else
{
CString s;
s.Format("%d",a);
AfxMessageBox(s);
}