对话框 添加工具条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了。
本文介绍如何在对话框中添加工具栏(toolbar),并演示如何使用ON_UPDATE_COMMAND_UI更新工具栏状态,确保工具按钮能够正确反映当前上下文。
3280

被折叠的 条评论
为什么被折叠?



