将焦点显式地设置为cmfcribonedit



我试图在我的应用程序的Ribbon栏上创建一个搜索框。它应该搜索给定的文本在一个树控制,按下回车键,但没有失去它的焦点/选择。目前,当我按回车时,它失去了焦点,并使用户再次点击搜索框以继续。

我的搜索框是一个cmfcribonedit控件。

有人能帮忙吗?

遇到了同样的问题,解决方案有点痛苦。如果您查看CMFCRibbonEdit的源代码,您将看到它有一个受保护的成员CMFCRibbonRichEditCtrl* m_pWndEdit;内部ribbon代码使用m_pWndEdit->SetFocus();将焦点设置在编辑控件上。您可以使用像

这样的东西从cmfcribonedit中派生一个类
class CMyRibbonEdit : public CMFCRibbonEdit
{
public:
    void SetFocus()
    {
        m_pWndEdit->SetFocus();
    }
};

但是它有问题。值得注意的是,设置焦点会调用编辑窗口的命令处理程序,因此如果从该函数调用SetFocus,就很容易遇到递归和堆栈错误。

相关内容

  • 没有找到相关文章

最新更新