1

我刚刚在我的功能区中添加了一个 CMFCRibbonEdit,但它似乎没有获得焦点。

它似乎已禁用。

我什至从 Microsoft 示例中复制/粘贴了创建此控件的实现,但我得到了相同的行为。

关于我可能做错了什么或忘记做什么的任何想法?

4

3 回答 3

2

您是否为该功能区元素 ID 添加了更新处理程序?

查看 MFC 功能包中的RibbonGadgetsMSOffice2007Demo示例,了解它们是如何做到的。

RibbonGadgets 将显示您需要使用的确切代码,以便将指定类型的元素添加到您的功能区。

于 2009-11-28T22:13:56.997 回答
0

democodemonkey 虽然它正确。功能区元素都需要有一个更新处理程序,甚至是一个虚拟处理程序。如果他们不这样做,他们将被禁用。

现在一切正常。

于 2009-11-28T23:01:03.127 回答
0

子类化 CEditRiBbbon

类 CMFCRibbonEditEx : 公共 CMFCRibbonEdit { 公共: CMFCRibbonEditEx(UINT nID, int nWidth, LPCTSTR lpszLabel = NULL, int nImage = -1) : CMFCRibbonEdit(nID, nWidth, lpszLabel, nImage) {} 虚拟 ~CMFCRibbonEditEx() {}

    void SetControlFocus()
    {
        m_pWndEdit->SetFocus();
    }

};

使用 CMFCRibbonEditEx 而不是 CMFCRibbonEdit

于 2010-12-24T07:42:21.423 回答