You must use the function CCmdUI::SetCheckto add a flag to the menu item with ON_UPDATE_COMMAND_UIand a ON_COMMANDhandler to change the state of the flag. This method works both for the main application menu and for any pop-up menus that you can create.
, MDI SDI MFC, , , , , , . , : , ; , , ..
( , , False.)
ID_MY_COMMAND:
class CMyView : public CView
{
private:
BOOL m_Flag;
afx_msg void OnMyCommand();
afx_msg void OnUpdateMyCommand(CCmdUI* pCmdUI);
DECLARE_MESSAGE_MAP()
};
BEGIN_MESSAGE_MAP(CMyView, CView)
ON_COMMAND(ID_MY_COMMAND, OnMyCommand)
ON_UPDATE_COMMAND_UI(ID_MY_COMMAND, OnUpdateMyCommand)
END_MESSAGE_MAP()
void CMyView::OnMyCommand()
{
m_Flag = !m_Flag;
}
void CMyView::OnUpdateMyCommand(CCmdUI* pCmdUI)
{
pCmdUI->SetCheck(m_Flag);
}
, - m_Flag , , CMyView OnInitialUpdate.
, !