CBCGPRibbon 添加Edit、Combox、Hyperlink控件

编辑框、下拉框、网址按钮等是我们常用的控件,对应的类是

CBCGPRibbonEdit

CBCGPRibbonComboBox

CBCGPRibbonHyperlink

使用实例如下:

//Edit
    CBCGPRibbonEdit* pEdit = new CBCGPRibbonEdit(2001, 200);
    pEdit->SetReadOnly(TRUE);
    pPanelActions->Add(pEdit);

//添加combox
    CBCGPRibbonComboBox *pCombox = new CBCGPRibbonComboBox(2000, TRUE);
    pCombox->AddItem(L"combox1");
    pCombox->AddItem(L"combox2");
    pCombox->SetReadOnly(TRUE);
    pCombox->SetPrompt(_T("Combo Box"));
    pPanelActions->Add(pCombox);

//link
    CBCGPRibbonHyperlink *pHyperlink = 
        new CBCGPRibbonHyperlink(2002, L"文本2", L"http://baidu.com");
    pPanelInfo->Add(pHyperlink);

正常添加之后,发现一个问题是控件灰显,不能点击,经过尝试发现是没有添加事件造成的,

添加的事件如下所示:

afx_msg void OnDummy(UINT id);

ON_COMMAND_RANGE(ID_CONTROL_START, ID_CONTROL_END, OnDummy)

//ID_CONTROL_START是最小的id号ID_CONTROL_END是最大的id号,避免添加的控件不在其中,造成消息无法响应


void CMainFrame::OnDummy(UINT id)
{
    switch (id)
    {
    case 2000:
    {
        CBCGPRibbonComboBox *pCombox = NULL;
        pCombox = DYNAMIC_DOWNCAST(CBCGPRibbonComboBox, m_wndRibbonBar.FindByID(id));
        CString strEditText = pCombox->GetEditText();
        break;
    }
    case 2001:
    {
        break;
    }
    case 2002:
    {
        CBCGPRibbonHyperlink *pHyperlink = NULL;
        pHyperlink = DYNAMIC_DOWNCAST(CBCGPRibbonHyperlink, m_wndRibbonBar.FindByID(id));
        pHyperlink->OpenLink();
        break;
    }
    case 2011:
    {
        break;
    }
    }
}

至此控件可以点击响应了

你可能感兴趣的:(BCGCBPro,CBCGPRibbon,MFC)