如题,本人在   MFC 下,使用 RIBBON 制作界面,但是用到 CMFCRibbonComboBox 控件时,没法响应 回车消息,没法添加键盘按键消息处理,也没有接口获取句柄。ON_COMMAND(ID_URL_COMBO, &CMainFrame::OnUrlCombo)afx_msg void OnUrlCombo();COMMAND  消息也不带任何参数的。
求高手  指教啊。。在线等!谢谢!

解决方案 »

  1.   

    看来真的没办法了
    哎。。悲剧!   这个RIbbon 界面  还得多研究呀。要句柄 没句柄  要消息 没消息,就一个COMMAND  还不带参数,郁闷!希望知道的前辈 指点下,小弟万分感谢!!
      

  2.   


    无幻 大神 ,又见面了。你说的重载是不是重载 COMBOBOX? 那这样的话 就需要动态生成COMBOBOX了 ,而且重载会很麻烦,我试过了,木有达到理想的目的,因为只能重载 Onselectitem ,没法重载 onkey ,所以解决不了目前的问题。不知道是不是我重载的有问题,谢谢关注。暂时 还木有找到解决办法。
      

  3.   

    可以得到控件的句柄 CMFCRibbonBar* pRibbonBar =GetRibbonBar();
    CMFCRibbonCategory* pCategory = pRibbonBar->GetCategory(1);
    CMFCRibbonPanel* pPanel = pCategory->GetPanel(1);
    然后一次往里面找。能找到的
      

  4.   

    实参为数字的说明是第几个catelory或者panel
      

  5.   

    这样有点复杂,直接给你个函数算了,一开始我也不知道我上面的那个方法,算一写了个函数void CXX::GetRibbonComBox(CMFCRibbonComboBox*& pCombox, UINT ID)
    {
    CMFCRibbonBar* pRibbon = ((CMDIFrameWndEx*) AfxGetMainWnd())->GetRibbonBar();
    ASSERT_VALID(pRibbon);
    pCombox = DYNAMIC_DOWNCAST(CMFCRibbonComboBox, pRibbon->FindByID(ID));
    if (pCombox== NULL)
    {
    ASSERT_VALID(pCombox);
    }
    }
      

  6.   


    这也不是HWND呀?  只是 CMFCRibbonBaseElement 的一个指针而已呢。 我要的是 HWND 句柄呢。不过还是谢谢了。
      

  7.   

    看看这个对你是否有帮助http://blog.csdn.net/akof1314/article/details/7559142