在Codejock工具条里加入控件的方法

来源:互联网 发布:距离刷枪软件 编辑:程序博客网 时间:2024/04/28 03:33
 

1。在MainFrame中定义相关变量

 CXTPToolBar*  m_pToolbar;
 CXTPControlComboBox* m_pCombox;

2.在MainFrame中声明系统消息处理程序

   afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
   afx_msg int OnCreateControl(LPCREATECONTROLSTRUCT lpCreateControl);

3。在函数OnCreate中加入下面的语句

 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;
    }

4. 在MainFrame.cpp中加入消息图

BEGIN_MESSAGE_MAP(CMainFrame, CXTPMDIFrameWnd)
 ON_XTP_CREATECONTROL()
END_MESSAGE_MAP()

5。在函数OnCreateControl中加入类似于下面的语句。这和具体使用的控件相关

 if (lpCreateControl->bToolBar)
 {
  CXTPToolBar* pToolBar = DYNAMIC_DOWNCAST(CXTPToolBar, lpCreateControl->pCommandBar);
  if (!pToolBar)
   return FALSE;

  //波形显示模块中的横向显示选择
  if (lpCreateControl->nID == ID_COMBOX && pToolBar->GetBarID() == IDR_TOOLBAR)
  {
   m_pCombox = (CXTPControlComboBox*)CXTPControlComboBox::CreateObject();
   m_pCombox->SetDropDownWidth(80);
   lpCreateControl->pControl = m_pCombox;
   return TRUE;
  }

6.在View的适当函数中加入类似于下面的语句,这和具体使用的控件相关。

  CChildFrame* pChild = (CChildFrame*)GetParentFrame();
  pChild->m_pWndMainFrm->m_pCombox->ResetContent();
  pChild->m_pWndMainFrm->m_pCombox->AddString(str1);
  pChild->m_pWndMainFrm->m_pCombox->AddString(str2);
  pChild->m_pWndMainFrm->m_pCombox->AddString(str3);
  pChild->m_pWndMainFrm->m_pCombox->AddString(str4);
  pChild->m_pWndMainFrm->m_pCombox->SetCurSel(2);