我在菜单“查看”里加了一项 “控制栏”
用来控制我的CDialogBar的显示隐藏。
我在MainFrame中处理了菜单"控制栏"的消息
当第一次点这个菜单时显示我的CDialogBar
并Check 这个菜单
下一次就隐藏并UnCheck这个菜单
这样本来是好用。
但是, 当CDialogBar浮动出来, 然后被关闭的时候, 我却无法UnCheck那个菜单, 怎么办?
菜单中选项的Check与UnCheck:
必须有完备的出里函数:
void CMainFrame::OnPlay()
{
// TODO: Add your command handler code here
m_bDisplay = !m_bDisplay; //取反
} // The ID message is "COMMAND"
void CMainFrame::OnUpdatePlay(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
pCmdUI->SetCheck(m_bDisplay);
} // The ID message is “UPDATE_COMMAND_UI”
这两个必须有。
BOOL变量 m_bDisplay 用来标是是否选上! m_bDisplay 不能忘记初始化
你不能UnCheck
应该是没有处理这个菜单选项的UPDATE_COMMAND_UI消息!!
或是没有自在里面加上pCmdUI->SetCheck(m_bDisplay);
-----------------------------------------------------------------
在delphi中是在点击"查看"菜单的事件中实现的,点击了菜单,判断dialogbar是否显示,然后决定是否check;
在VC中怎么判断dialogbar是否显示呢?
就象delphi的
menu1.Checked:=dialogbar.Visible;