EVC中 菜单的打勾选项问题
在代码中,我用
state = submenu->GetMenuState( ID_OPERATION_CONNECTTOSERVER, MF_BYCOMMAND );
来读出菜单当前的状态,但很妖怪的是
无论初始时刻我在资源中设置为“Checked”状态还是“UnChecked”状态
我得到的State 都为0
不知道是什么原因,请教大家
谢谢
void CLocateAssistantDlg::OnOperationConnecttoserver()
{
// 判断菜单选项的状态
UINT state;
CMenu* pSubmenu = m_pMenuBar->GetSubMenu(0);
state = pSubmenu ->GetMenuState( ID_OPERATION_CONNECTTOSERVER, MF_BYCOMMAND );
ASSERT( state != 0xFFFFFFFF ) ;
if( state & MF_CHECKED )
{
// 若当前是CHECKED状态,则置为UNCHECKED状态
m_pMenuBar->CheckMenuItem(ID_OPERATION_CONNECTTOSERVER, MF_UNCHECKED | MF_BYCOMMAND );
}
else
{
// 若当前是UNCHECKED状态,则置为CHECKED状态
m_pMenuBar->CheckMenuItem(ID_OPERATION_CONNECTTOSERVER, MF_CHECKED | MF_BYCOMMAND );
}
}
上面的代码是菜单命令的响应函数,无论我在菜单资源中设置“Checked”或者“Unchecked”,程序运行后,直接点击此菜单项,发现得到的State都为“0”,所以感觉有点怪
请教了 谢谢!
MENUITEMINFO info;
memset(&info, 0, sizeof(info));
info.cbSize = sizeof(info);
info.fMask = MIIM_STATE;
pSubmenu->GetMenuItemInfo(ID_OPERATION_CONNECTTOSERVER, &info);
if( info.fState & MF_CHECKED )
{
...
}