我刚刚在我的功能区中添加了一个 CMFCRibbonEdit,但它似乎没有获得焦点。
它似乎已禁用。
我什至从 Microsoft 示例中复制/粘贴了创建此控件的实现,但我得到了相同的行为。
关于我可能做错了什么或忘记做什么的任何想法?
您是否为该功能区元素 ID 添加了更新处理程序?
查看 MFC 功能包中的RibbonGadgets和MSOffice2007Demo示例,了解它们是如何做到的。
RibbonGadgets 将显示您需要使用的确切代码,以便将指定类型的元素添加到您的功能区。
democodemonkey 虽然它正确。功能区元素都需要有一个更新处理程序,甚至是一个虚拟处理程序。如果他们不这样做,他们将被禁用。
现在一切正常。
子类化 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