在对话框里面使用ON_UPDATE_COMMAND_UI映射工具条/菜单

对话框 添加工具条toolbar

if(!m_ToolBar.CreateEx(this, TBSTYLE_FLAT,

WS_CHILD|WS_VISIBLE|CBRS_TOP|CBRS_GRIPPER|CBRS_TOOLTIPS|CBRS_SIZE_DYNAMIC)
  ||!m_ToolBar.LoadToolBar(IDR_TOOLBAR_GRAPHICS))
{
  TRACE0(_T("创建工具条失败\n"));
  return FALSE;
}
RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);

 

在对话框里面使用ON_UPDATE_COMMAND_UI映射工具条

BOOLCMyDlg::ContinueModal()
{


if(m_wndtoolbar.IsWindowVisible())
{
CFrameWnd*pParent=(CFrameWnd*)m_wndtoolbar.GetParent();
if(pParent)
m_wndtoolbar.OnUpdateCmdUI(pParent,(WPARAM)TRUE);
} //工具栏

CMenu*pMainMenu=GetMenu();
CCmdUI cmdUI;
for(UINT n=0;n<pMainMenu->GetMenuItemCount(); n++)
{
CMenu*pSubMenu=pMainMenu->GetSubMenu(n);
cmdUI.m_nIndexMax=pSubMenu->GetMenuItemCount();
for(UINT i=0;i<cmdUI.m_nIndexMax; i++)
{
cmdUI.m_nIndex=i;
cmdUI.m_nID=pSubMenu->GetMenuItemID(i);
cmdUI.m_pMenu=pSubMenu;
cmdUI.DoUpdate(this,FALSE);
}
}//菜单


returnCDialog::ContinueModal();
}


然后再对应的.h中添加 BOOLContinueModal();
这样你就可以使用UPDATE_COMMAND_UI了。

你可能感兴趣的:(UI,command,工具)