MFC中让菜单按钮变灰 5
制作一个简单的记事本,用到撤销,剪贴等功能。以撤销为例子,现在问题是我刚打开时候,是没有内容可以撤销的,所以我想让菜单栏中的撤销按钮变灰,相当于加一个判断语句if(!m_...
制作一个简单的记事本,用到撤销,剪贴等功能。以撤销为例子,现在问题是我刚打开时候,是没有内容可以撤销的,所以我想让菜单栏中的撤销按钮变灰,相当于加一个判断语句if(!m_MyRichEdit.CanUndo()),接下来就不知道该怎么写了,而且这个语句是不是应该写在
BOOL CNotePadDlg::OnInitDialog()
{
}
里呢? 展开
BOOL CNotePadDlg::OnInitDialog()
{
}
里呢? 展开
2个回答
展开全部
MFC中,菜单按钮的使能问题是在系统空闲时候处理的。
一个菜单项用于处理一个功能,功能处理问题和使能问题,写代码上基本相同:
假如一个菜单项的 ID 为 ID_COMMAND
功能处理:
在窗口的 h 文件中定义函数
afx_msg void OnGrapFenJie();
afx_msg void OnUpdateFenjie(CCmdUI * pCmdUI);
然后在窗口的 CPP 文件中实现代码:
void OnGrapFenJie()
{
菜单的功能代码
}
void OnUpdateFenjie(CCmdUI * pCmdUI);
{
pCmdUI->Enable(菜单可用 ? TRUE : FALSE);
}
最后 窗口 CPP 文件是 BEGIN_MESSAGE_MAP 和 END_MESSAGE_MAP 之间加入代码,相应消息就可以了。
ON_COMMAND(ID_COMMAND, OnGrapFenJie)
ON_UPDATE_COMMAND_UI(IDID_COMMAND, OnUpdateFenjie)
一个菜单项用于处理一个功能,功能处理问题和使能问题,写代码上基本相同:
假如一个菜单项的 ID 为 ID_COMMAND
功能处理:
在窗口的 h 文件中定义函数
afx_msg void OnGrapFenJie();
afx_msg void OnUpdateFenjie(CCmdUI * pCmdUI);
然后在窗口的 CPP 文件中实现代码:
void OnGrapFenJie()
{
菜单的功能代码
}
void OnUpdateFenjie(CCmdUI * pCmdUI);
{
pCmdUI->Enable(菜单可用 ? TRUE : FALSE);
}
最后 窗口 CPP 文件是 BEGIN_MESSAGE_MAP 和 END_MESSAGE_MAP 之间加入代码,相应消息就可以了。
ON_COMMAND(ID_COMMAND, OnGrapFenJie)
ON_UPDATE_COMMAND_UI(IDID_COMMAND, OnUpdateFenjie)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询