首先添加一个新的资源符号,打开"Resource Symbols",添加"ID_SHOW_POS",值取默认的就行了。
添加一个BOOL型变量:m_bDisplay,初始化为true,用来决定该菜单是否显示被选中。
添加代码,实现该菜单项的显示,在CMainFrame::OnCreate函数中添加以下代码:
CMenu* pSysMenu = GetMenu(); //获得系统菜单
CMenu* pSubMenu = pSysMenu->GetSubMenu(2); //获得第三个菜单
CString str("显示鼠标坐标[&D]");
pSubMenu->AppendMenu(MF_SEPARATOR); //插入分隔符
pSubMenu->AppendMenu(MF_STRING, ID_SHOW_POS, str); //
DrawMenuBar();
使用手工方式将ID_SHOW_POS映射到视图类中:
头文件中:afx_msg void OnShowPos();
实现文件中:ON_COMMAND(ID_SHOW_POS, CMouseMoveView::OnShowPos)
void CMouseMoveView::OnShowPos()
{
m_bDisplay = !m_bDisplay;
}
修改OnDraw函数,在显示鼠标位置前添加:
if (!m_bDisplay)
return;
最后手工映射ID_SHOW_POS的更新消息函数,方法如上面所示,其实现函数为:
void CMouseMoveView::OnUpdateItem(CCmdUI* pCmdUI)
{
pCmdUI->SetCheck(m_bDisplay);
}
添加的功能主要是用菜单控制鼠标坐标的显示,如下图: