我试图在我的应用程序的Ribbon栏上创建一个搜索框。它应该搜索给定的文本在一个树控制,按下回车键,但没有失去它的焦点/选择。目前,当我按回车时,它失去了焦点,并使用户再次点击搜索框以继续。
我的搜索框是一个cmfcribonedit控件。
有人能帮忙吗?
遇到了同样的问题,解决方案有点痛苦。如果您查看CMFCRibbonEdit的源代码,您将看到它有一个受保护的成员CMFCRibbonRichEditCtrl* m_pWndEdit;内部ribbon代码使用m_pWndEdit->SetFocus();将焦点设置在编辑控件上。您可以使用像
这样的东西从cmfcribonedit中派生一个类class CMyRibbonEdit : public CMFCRibbonEdit
{
public:
void SetFocus()
{
m_pWndEdit->SetFocus();
}
};
但是它有问题。值得注意的是,设置焦点会调用编辑窗口的命令处理程序,因此如果从该函数调用SetFocus,就很容易遇到递归和堆栈错误。