在Codejock中工具条里按钮具有多个状态的编程方法

 

1。在资源中的工具条编辑器中,把各种状态的图表都加入到工具条中;

2。在MainFrm.h文件中定义工具条变量

 CXTPToolBar*  m_pToolbar;
3。在MainFrm.cpp文件中加入创建工具条函数

BOOL CMainFrame::CreateToolbar()
{
 CXTPCommandBars* pCommandBars = GetCommandBars();
    if(pCommandBars == NULL)
    {
        TRACE0("Failed to create command bars object./n");
        return -1;      // fail to create
    }

 m_pToolbar = (CXTPToolBar*)
        pCommandBars->Add(_T("工具条"), xtpBarTop);
    if (!m_pToolbar || !m_pToolbar->LoadToolBar(IDR_TOOLBAR))
    {
        TRACE0("Failed to create toolbar/n");
        return -1;
    }

 m_pToolbar->SetVisible(FALSE);

 return TRUE;
}

4。在MainFrm.cpp的消息处理程序OnCreate中引用上面的函数CreateToolbar();

5。在View.h文件中加入按钮控制变量

 CXTPControl* m_pToo11;
 CXTPControl* m_pTool2;

消息相应函数的说明:
 afx_msg void OnTool1();
 afx_msg void OnUpdateTool1(CCmdUI* pCmdUI);
 afx_msg void OnTool2();
 afx_msg void OnUpdateTool2(CCmdUI* pCmdUI);

6.在View.cpp的OnInitailUpdate函数中加入

  CChildFrame* pChild = (CChildFrame*)GetParentFrame();

  m_pTool1 = pChild->m_pWndMainFrm->m_pToolbar->GetControl(n1);
  m_pTool2 = pChild->m_pWndMainFrm->m_pToolbar->GetControl(n2);

其中的n1、n2位相应图标在工具条的位置,以0为起始值.

7。在View的消息途中加入

 ON_COMMAND(ID_TOOL1,OnTool1)
 ON_UPDATE_COMMAND_UI(ID_TOOL1, OnUpdateTool1)

 ON_COMMAND(ID_TOOL2,OnTool2)
 ON_UPDATE_COMMAND_UI(ID_TOOL2, OnUpdateTool2)

8.在相应的消息处理程序中加入

void CTrendGraph::OnUpdateTool1(CCmdUI* pCmdUI)
{
 CChildFrame* pChild = (CChildFrame*)GetParentFrame();
 if(m_pTool1 != NULL)
 {
  if(m_bTool)
  {
   m_pTool1->SetHideFlags(TRUE);
   m_pTool2->SetHideFlags(FALSE);
  }
  else
  {
   m_pTool1->SetHideFlags(FALSE);
   m_pTool2->SetHideFlags(TRUE);
  }
  pChild->m_pWndMainFrm->m_pToolbar->DelayRedraw();
 }
}

9. 在函数OnTool1()中执行相应的操作。

 

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值